{"id":92,"date":"2023-10-14T23:33:00","date_gmt":"2023-10-14T15:33:00","guid":{"rendered":"https:\/\/www.cxjyyds.com\/?p=92"},"modified":"2024-12-14T23:41:38","modified_gmt":"2024-12-14T15:41:38","slug":"ubuntu22-04-lts-%e9%83%a8%e7%bd%b2harbor","status":"publish","type":"post","link":"https:\/\/www.cxjyyds.com\/?p=92","title":{"rendered":"Ubuntu22.04 LTS \u90e8\u7f72harbor"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"Ubuntu22-04-LTS-\u90e8\u7f72harbor\u9ad8\u53ef\u7528\">Ubuntu22.04 LTS \u90e8\u7f72harbor\u9ad8\u53ef\u7528<\/h1>\n\n\n\n<p id=\"20241214231514-4tc8oat\"><strong>\u73af\u5883\u51c6\u5907<\/strong><\/p>\n\n\n\n<p id=\"20241214231514-ft2voyf\"><strong>\u5747\u9700\u8981docker\u73af\u5883<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>IP<\/th><th>\u4e3b\u673a\u540d<\/th><\/tr><\/thead><tbody><tr><td>10.0.0.20<\/td><td>harbor01<\/td><\/tr><tr><td>10.0.0.21<\/td><td>harbor02<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"\u4e00-harbor-\u73af\u5883\u90e8\u7f72\">\u4e00\u3001harbor \u73af\u5883\u90e8\u7f72<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"1--\u4e0b\u8f7dharbor\u5305\">1. \u4e0b\u8f7dharbor\u5305<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor01:~]# wget https:\/\/github.com\/goharbor\/harbor\/releases\/download\/v2.7.2\/harbor-offline-installer-v2.7.2.tgz\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"2--\u89e3\u538b\u8f6f\u4ef6\u5305\">2. \u89e3\u538b\u8f6f\u4ef6\u5305<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor01:~]# tar xf harbor-offline-installer-v2.7.2.tgz -C \/caixiangjia\/softwares\/\n&#91;root@harbor01:~]# cd \/caixiangjia\/softwares\/harbor\/\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"3--\u51c6\u5907\u914d\u7f6e\u6587\u4ef6\">3. \u51c6\u5907\u914d\u7f6e\u6587\u4ef6<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor01:harbor]# cp harbor.yml.tmpl harbor.yml\n&#91;root@harbor01:harbor]# ll harbor.yml*\n-rw-r--r-- 1 root root 11567 Dec 14 21:13 harbor.yml\n-rw-r--r-- 1 root root 11567 Apr 24  2023 harbor.yml.tmpl\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"4--\u7f16\u8f91harbor\u914d\u7f6e\u6587\u4ef6\">4. \u7f16\u8f91harbor\u914d\u7f6e\u6587\u4ef6<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>...\nhostname: 10.0.0.20\n...\n 12 # https related config\n 13 #https:\n 14 #  # https port for harbor, default is 443\n 15 #  port: 443\n 16 #  # The path of cert and key files for nginx\n 17 #  certificate: \/your\/certificate\/path\n 18 #  private_key: \/your\/private\/key\/path\n...\n 34 harbor_admin_password: 1\n...\n 53 data_volume: \/caixiangjia\/data\/harbor\n...\n# \u6b64\u5904\u65b9\u4fbf\u540e\u671fprometheus\u76d1\u63a7\n220 metric:\n221   enabled: true                                                                                  \n222   port: 9099\n223   path: \/metrics\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"5--\u5b89\u88c5-harbor\">5. \u5b89\u88c5 harbor<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor01:harbor]# .\/install.sh --with-chartmuseum\n...\n&#91;+] Building 0.0s (0\/0)                                                                                                                                                            docker:default\n&#91;+] Running 13\/13\n \u2714 Network harbor_harbor-chartmuseum  Created                                                                                                                                                0.1s \n \u2714 Network harbor_harbor              Created                                                                                                                                                0.1s \n \u2714 Container harbor-log               Started                                                                                                                                                0.0s \n \u2714 Container chartmuseum              Started                                                                                                                                                0.0s \n \u2714 Container registry                 Started                                                                                                                                                0.0s \n \u2714 Container registryctl              Started                                                                                                                                                0.0s \n \u2714 Container harbor-portal            Started                                                                                                                                                0.0s \n \u2714 Container harbor-db                Started                                                                                                                                                0.0s \n \u2714 Container redis                    Started                                                                                                                                                0.0s \n \u2714 Container harbor-core              Started                                                                                                                                                0.0s \n \u2714 Container nginx                    Started                                                                                                                                                0.0s \n \u2714 Container harbor-jobservice        Started                                                                                                                                                0.0s \n \u2714 Container harbor-exporter          Started                                                                                                                                                0.0s \n\u2714 ----Harbor has been installed and started successfully.----\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"6--\u8bbf\u95ee-harbor-\u7684-WebUI\">6. \u8bbf\u95ee harbor \u7684 WebUI<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;10.0.0.20\/\n\n\u7528\u6237\u540d\uff1aadmin\n\u5bc6\u7801\uff1a1<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214212203579-1024x529.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"529\" data-original=\"https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214212203579-1024x529.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-94\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2023\/10\/image-1024x388.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"388\" data-original=\"https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2023\/10\/image-1024x388.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-116\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p id=\"20241214231514-574yz4z\"><\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"\u4e8c-harbor-\u7684\u57fa\u672c\u4f7f\u7528\">\u4e8c\u3001harbor \u7684\u57fa\u672c\u4f7f\u7528<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"1--\u5ba2\u6237\u7aef\u914d\u7f6e\">1. \u5ba2\u6237\u7aef\u914d\u7f6e<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor01:~]# cat \/etc\/docker\/daemon.json\n{\n    \"insecure-registries\": &#91;\"10.0.0.20\"]\n}\n\n&#91;root@harbor01:~]# systemctl restart docker.service \n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"2--harbor-\u521b\u5efa\u4ed3\u5e93\">2. harbor \u521b\u5efa\u4ed3\u5e93<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214213735028-1024x625.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"625\" data-original=\"https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214213735028-1024x625.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-96\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p id=\"20241214231514-uafwqr1\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"3--\u7ed9\u955c\u50cf\u6253-tag\">3. \u7ed9\u955c\u50cf\u6253 tag<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor01:~]# docker images\nREPOSITORY                      TAG       IMAGE ID       CREATED         SIZE\nhello-world                     latest    d2c94e258dcb   19 months ago   13.3kB\n&#91;root@harbor01:~]# docker tag hello-world:latest 10.0.0.20\/test\/hello-world-latest<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214213654342-1024x509.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"509\" data-original=\"https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214213654342-1024x509.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-97\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p id=\"20241214231514-zle78kw\">\u200b<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"4--\u63a8\u9001\u955c\u50cf\u5230harbor\u4ed3\u5e93\">4. \u63a8\u9001\u955c\u50cf\u5230harbor\u4ed3\u5e93<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># \u672a\u767b\u5f55\u4e4b\u524d\n&#91;root@harbor01:~]# docker push 10.0.0.20\/test\/hello-world\nUsing default tag: latest\nThe push refers to repository &#91;10.0.0.20\/test\/hello-world]\nac28800ec8bb: Preparing \nunauthorized: unauthorized to access repository: test\/hello-world, action: push: unauthorized to access repository: test\/hello-world, action: push\n\n&#91;root@harbor01:~]# docker login 10.0.0.20\nUsername: admin \t# \u8f93\u5165\u7528\u6237\u540d\nPassword: \t\t\t# \u8f93\u5165\u5bc6\u7801\uff0c\u8f93\u5165\u5bc6\u7801\u65f6\u770b\u4e0d\u89c1\u8f93\u5165\u5b57\u7b26\uff01\nWARNING! Your password will be stored unencrypted in \/root\/.docker\/config.json.\nConfigure a credential helper to remove this warning. See\nhttps:&#47;&#47;docs.docker.com\/engine\/reference\/commandline\/login\/#credentials-store\n\nLogin Succeeded\n\n# \u767b\u5f55\u6210\u529f\u540e\u4f1a\u4fdd\u5b58\u767b\u5f55\u4fe1\u606f\n&#91;root@harbor01:~]# more \/root\/.docker\/config.json\n{\n\t\"auths\": {\n\t\t\"10.0.0.20\": {\n\t\t\t\"auth\": \"YWRtaW46MQ==\"\n\t\t}\n\t}\n}\n\n# \u901a\u8fc7 base64 -d \u67e5\u770b\u4f60\u7684\u5bc6\u7801\n&#91;root@harbor01:~]# echo YWRtaW46MQ== | base64 -d | more\nadmin:1\n\n\n#\u767b\u5f55\u4e4b\u540e\n&#91;root@harbor01:~]# docker push 10.0.0.20\/test\/hello-world\nUsing default tag: latest\nThe push refers to repository &#91;10.0.0.20\/test\/hello-world]\nac28800ec8bb: Pushed \nlatest: digest: sha256:d37ada95d47ad12224c205a938129df7a3e52345828b4fa27b03a98825d1e2e7 size: 524\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"5-web\u9875\u9762\u67e5\u770b\">5.web\u9875\u9762\u67e5\u770b<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-19-1024x343.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"343\" data-original=\"https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-19-1024x343.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-98\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p id=\"20241214231514-06almn5\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"6--\u63a8\u9001\u955c\u50cf\u5b8c\u6210\u540e\u7acb\u523b\u9000\u51fa-\u907f\u514d\u5bc6\u7801\u6cc4\u9732-\">6. \u63a8\u9001\u955c\u50cf\u5b8c\u6210\u540e\u7acb\u523b\u9000\u51fa(\u907f\u514d\u5bc6\u7801\u6cc4\u9732)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor01:~]# docker logout 10.0.0.20\nRemoving login credentials for 10.0.0.20\n\n&#91;root@harbor01:~]# more \/root\/.docker\/config.json\n{\n\t\"auths\": {}\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"7--\u5176\u4ed6\u5ba2\u6237\u7aef\u62c9\u53d6\u955c\u50cf--\u9700\u8981\u914d\u7f6e\u4fe1\u4efb\u4ed3\u5e93-\">7. \u5176\u4ed6\u5ba2\u6237\u7aef\u62c9\u53d6\u955c\u50cf\uff0c\u3010\u9700\u8981\u914d\u7f6e\u4fe1\u4efb\u4ed3\u5e93\u3011<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor02:~]# cat \/etc\/docker\/daemon.json \n{\n  \"insecure-registries\": &#91;\"10.0.0.20\"]\n}\n\n&#91;root@harbor02:~]# systemctl restart docker.service \n\n&#91;root@harbor02:~]# docker pull 10.0.0.20\/test\/hello-world:latest\nlatest: Pulling from test\/hello-world\nc1ec31eb5944: Pull complete \nDigest: sha256:d37ada95d47ad12224c205a938129df7a3e52345828b4fa27b03a98825d1e2e7\nStatus: Downloaded newer image for 10.0.0.20\/test\/hello-world:latest\n10.0.0.20\/test\/hello-world:latest\n<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"\u4e09-harbor-\u9ad8\u53ef\u7528\u73af\u5883\u642d\u5efa\">\u4e09\u3001harbor \u9ad8\u53ef\u7528\u73af\u5883\u642d\u5efa<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"1--\u5c06harbor\u53d1\u9001\u523010-0-0-21\u8282\u70b9\">1. \u5c06harbor\u53d1\u9001\u523010.0.0.21\u8282\u70b9<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor01:~]# scp harbor-offline-installer-v2.7.2.tgz 10.0.0.21:\/root\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"2--\u89e3\u538b\u8f6f\u4ef6\u5305-\">2. \u89e3\u538b\u8f6f\u4ef6\u5305<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor02:~]# tar xf harbor-offline-installer-v2.7.2.tgz -C \/caixiangjia\/softwares\/\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"3--\u5c06harbor\u914d\u7f6e\u6587\u4ef6\u53d1\u9001\u523010-0-0-21\u8282\u70b9\">3. \u5c06harbor\u914d\u7f6e\u6587\u4ef6\u53d1\u9001\u523010.0.0.21\u8282\u70b9<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor01:harbor]# scp harbor.yml 10.0.0.21:\/caixiangjia\/softwares\/harbor\/\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"4--\u5b89\u88c5harbor\">4. \u5b89\u88c5harbor<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># \u4fee\u6539harbor\u914d\u7f6e\u6587\u4ef6\n&#91;root@harbor02:harbor]# vim harbor.yml\n...\nhostname: 10.0.0.21\n...\n\n&#91;root@harbor02:harbor]# .\/install.sh --with-chartmuseum\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"5--\u8bbf\u95eeharbor-\u7684WebUi\">5. \u8bbf\u95eeharbor \u7684WebUi<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;10.0.0.21\/\n\n\u8d26\u53f7\uff1aadmin\n\u5bc6\u7801\uff1a1<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20-1024x395.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"395\" data-original=\"https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20-1024x395.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-99\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p id=\"20241214231514-wgqckn6\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"6--10-0-0-20\u8282\u70b9\u65b0\u5efa\u4ed3\u5e93\">6. 10.0.0.20\u8282\u70b9\u65b0\u5efa\u4ed3\u5e93<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214222337208.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"827\" height=\"773\" data-original=\"https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214222337208.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-100\"  sizes=\"auto, (max-width: 827px) 100vw, 827px\" \/><\/div><\/figure>\n\n\n\n<p id=\"20241214231514-kitscxn\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"7--10-0-0-20\u8282\u70b9\u65b0\u5efa\u590d\u5236\u89c4\u5219\">7. 10.0.0.20\u8282\u70b9\u65b0\u5efa\u590d\u5236\u89c4\u5219<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214222624628.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"884\" height=\"980\" data-original=\"https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214222624628.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-101\"  sizes=\"auto, (max-width: 884px) 100vw, 884px\" \/><\/div><\/figure>\n\n\n\n<p id=\"20241214231514-st3q1u2\">\u200b<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"8--10-0-0-21\u8282\u70b9\u65b0\u5efa\u4ed3\u5e93\">8. 10.0.0.21\u8282\u70b9\u65b0\u5efa\u4ed3\u5e93<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214222743691.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"893\" height=\"833\" data-original=\"https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214222743691.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-102\"  sizes=\"auto, (max-width: 893px) 100vw, 893px\" \/><\/div><\/figure>\n\n\n\n<p id=\"20241214231514-i3abyn4\">\u200b<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"9--10-0-0-21\u8282\u70b9\u65b0\u5efa\u590d\u5236\u89c4\u5219\">9. 10.0.0.21\u8282\u70b9\u65b0\u5efa\u590d\u5236\u89c4\u5219<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214222834709-977x1024.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"977\" height=\"1024\" data-original=\"https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214222834709-977x1024.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-103\"  sizes=\"auto, (max-width: 977px) 100vw, 977px\" \/><\/div><\/figure>\n\n\n\n<p id=\"20241214231514-ccklk3f\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"10--\u6d4b\u8bd5\u9a8c\u8bc1\u6548\u679c\">10. \u6d4b\u8bd5\u9a8c\u8bc1\u6548\u679c<\/h2>\n\n\n\n<p id=\"20241214231514-k0kmin5\">\u63a8\u9001\u955c\u50cf\u5230 20 \u8282\u70b9\uff0c\u89c2\u5bdf 21 \u662f\u5426\u6709\u540c\u6b65\u6570\u636e<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor01:~]# docker push 10.0.0.20\/wordpress\/wordpress:latest <\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-21-1024x407.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"407\" data-original=\"https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-21-1024x407.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-105\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-22-1024x462.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"462\" data-original=\"https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-22-1024x462.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-106\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p id=\"20241214231514-cndtgdc\"><\/p>\n\n\n\n<p id=\"20241214231514-r6h9ect\">\u63a8\u9001\u955c\u50cf\u5230 21 \u8282\u70b9\uff0c\u89c2\u5bdf 20 \u662f\u5426\u6709\u540c\u6b65\u6570\u636e<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor02:~]# docker push 10.0.0.21\/mysql\/mysql:8.0.36-oracle<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-23-1024x371.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"371\" data-original=\"https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-23-1024x371.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-107\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-24-1024x382.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"382\" data-original=\"https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-24-1024x382.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-108\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"11--\u914d\u7f6ekeepalived\">11. \u914d\u7f6ekeepalived<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"1--\u5206\u522b\u5b89\u88c5keepalived\">1. \u5206\u522b\u5b89\u88c5keepalived<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor01:~]# apt -y install keepalived\n&#91;root@harbor02:~]# apt -y install keepalived\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"2--\u4fee\u6539-keepliaved-\u7684\u914d\u7f6e\u6587\u4ef6\">2. \u4fee\u6539 keepliaved \u7684\u914d\u7f6e\u6587\u4ef6<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor01:~]# cat &gt; \/etc\/keepalived\/keepalived.conf &lt;&lt;EOF\n! Configuration File for keepalived\nglobal_defs {\n   router_id 10.0.0.20\n}\nvrrp_script chk_nginx {\n    script \"\/etc\/keepalived\/check_port.sh 80\"\n    interval 2\n    weight -20\n}\nvrrp_instance VI_1 {\n    state MASTER\n    interface ens33\n    virtual_router_id 100\n    priority 100\n    advert_int 1\n    mcast_src_ip 10.0.0.20\n    nopreempt\n    authentication {\n        auth_type PASS\n        auth_pass 11111111\n    }\n    track_script {\n         chk_nginx\n    }\n    virtual_ipaddress {\n        10.0.0.99\n    }\n}\nEOF\n\n\n&#91;root@harbor02:~]# cat &gt; \/etc\/keepalived\/keepalived.conf &lt;&lt;EOF\n! Configuration File for keepalived\nglobal_defs {\n   router_id 10.0.0.21\n}\nvrrp_script chk_nginx {\n    script \"\/etc\/keepalived\/check_port.sh 80\"\n    interval 2\n    weight -20\n}\nvrrp_instance VI_1 {\n    state MASTER\n    interface ens33\n    virtual_router_id 100\n    priority 100\n    advert_int 1\n    mcast_src_ip 10.0.0.21\n    nopreempt\n    authentication {\n        auth_type PASS\n        auth_pass 11111111\n    }\n    track_script {\n         chk_nginx\n    }\n    virtual_ipaddress {\n        10.0.0.99\n    }\n}\nEOF\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"3--\u542f\u52a8-keepalived\">3. \u542f\u52a8 keepalived<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor01:~]# systemctl enable --now keepalived\n&#91;root@harbor02:~]# systemctl enable --now keepalived\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"4--\u68c0\u67e5VIP\u5730\u5740\">4. \u68c0\u67e5VIP\u5730\u5740<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor01:~]# ip a\n...\n2: ens33: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000\n    link\/ether 00:0c:29:b2:85:39 brd ff:ff:ff:ff:ff:ff\n    altname enp2s1\n    inet 10.0.0.20\/24 brd 10.0.0.255 scope global ens33\n       valid_lft forever preferred_lft forever\n    inet 10.0.0.99\/32 scope global ens33\n       valid_lft forever preferred_lft forever\n    inet6 fe80::20c:29ff:feb2:8539\/64 scope link \n       valid_lft forever preferred_lft forever\n     \n     \n&#91;root@harbor02:~]# ip a\n...\n2: ens33: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000\n    link\/ether 00:0c:29:c3:05:1b brd ff:ff:ff:ff:ff:ff\n    altname enp2s1\n    inet 10.0.0.21\/24 brd 10.0.0.255 scope global ens33\n       valid_lft forever preferred_lft forever\n    inet6 fe80::20c:29ff:fec3:51b\/64 scope link \n       valid_lft forever preferred_lft forever     \n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"5--\u4f7f\u7528VIP\u5730\u5740\u767b\u5f55\">5. \u4f7f\u7528VIP\u5730\u5740\u767b\u5f55<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;10.0.0.99\/<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214224923398-1024x415.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"415\" data-original=\"https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214224923398-1024x415.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-109\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p id=\"20241214231514-npryjjc\">\u200b<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"6--\u8ba910-0-0-21\u8282\u70b9\u5b95\u673a-\u89c2\u5bdfVIP\u662f\u5426\u6f02\u79fb\">6. \u8ba910.0.0.21\u8282\u70b9\u5b95\u673a\uff0c\u89c2\u5bdfVIP\u662f\u5426\u6f02\u79fb<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@harbor01:~]# init 0\n&#91;root@harbor02:~]# ip a\n...\n2: ens33: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000\n    link\/ether 00:0c:29:c3:05:1b brd ff:ff:ff:ff:ff:ff\n    altname enp2s1\n    inet 10.0.0.21\/24 brd 10.0.0.255 scope global ens33\n       valid_lft forever preferred_lft forever\n    inet 10.0.0.99\/32 scope global ens33\n       valid_lft forever preferred_lft forever\n    inet6 fe80::20c:29ff:fec3:51b\/64 scope link \n       valid_lft forever preferred_lft forever\n<\/code><\/pre>\n\n\n\n<p id=\"20241214231514-b762sqw\">harbor\u4ed3\u5e93\u6b63\u5e38\u8bbf\u95ee<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214225107014-1024x358.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"358\" data-original=\"https:\/\/www.cxjyyds.com\/wp-content\/uploads\/2024\/12\/image-20241214225107014-1024x358.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-110\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p id=\"20241214231514-uwuxtbw\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ubuntu22.04 LTS \u90e8\u7f72harbor\u9ad8\u53ef\u7528 \u73af\u5883\u51c6\u5907 \u5747\u9700\u8981docker\u73af\u5883 IP \u4e3b\u673a\u540d 10. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-92","post","type-post","status-publish","format-standard","hentry","category-docker"],"_links":{"self":[{"href":"https:\/\/www.cxjyyds.com\/index.php?rest_route=\/wp\/v2\/posts\/92","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cxjyyds.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cxjyyds.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cxjyyds.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cxjyyds.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=92"}],"version-history":[{"count":4,"href":"https:\/\/www.cxjyyds.com\/index.php?rest_route=\/wp\/v2\/posts\/92\/revisions"}],"predecessor-version":[{"id":117,"href":"https:\/\/www.cxjyyds.com\/index.php?rest_route=\/wp\/v2\/posts\/92\/revisions\/117"}],"wp:attachment":[{"href":"https:\/\/www.cxjyyds.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=92"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cxjyyds.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=92"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cxjyyds.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=92"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}