{"id":1883,"date":"2023-03-30T23:00:08","date_gmt":"2023-03-30T15:00:08","guid":{"rendered":"https:\/\/www.appblog.cn\/?p=1883"},"modified":"2023-04-22T09:01:06","modified_gmt":"2023-04-22T01:01:06","slug":"docker-builds-private-repository","status":"publish","type":"post","link":"https:\/\/www.appblog.cn\/index.php\/2023\/03\/30\/docker-builds-private-repository\/","title":{"rendered":"Docker\u642d\u5efa\u79c1\u6709\u4ed3\u5e93"},"content":{"rendered":"<p>\u4e3a\u4ec0\u4e48\u9700\u8981\u642d\u5efa\u79c1\u6709\u4ed3\u5e93\uff0c\u5927\u591a\u662f\u4e3a\u4e86\u901f\u5ea6\uff0c\u6211\u4eec\u5728\u79c1\u6709\u4ed3\u5e93\u4e2d\u7684push\u548cpull\u7684\u901f\u5ea6\u662f\u7279\u522b\u5feb\u7684\u3002<\/p>\n<h2>\u5229\u7528registry\u5feb\u901f\u642d\u5efa<\/h2>\n<p>\u53c2\u8003\uff1a<a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/hub.docker.com\/_\/registry\/\">https:\/\/hub.docker.com\/_\/registry\/<\/a><\/p>\n<p><!-- more --><\/p>\n<pre><code class=\"language-bash\">Run a local registry: Quick Version\n\n$ docker run -d -p 5000:5000 --restart always --name registry registry:2\n\nNow, use it from within Docker:\n\n$ docker pull ubuntu\n$ docker tag ubuntu localhost:5000\/ubuntu\n$ docker push localhost:5000\/ubuntu<\/code><\/pre>\n<p>\u8fd9\u662f\u5b98\u65b9\u7684\u4e00\u4e2a\u5c0fdemo\uff0c\u4e0b\u9762\u662f\u81ea\u5df1\u7684\u5b9e\u8df5\uff1a<\/p>\n<pre><code class=\"language-bash\"># \u62c9\u53d6registry2.0\u7248\u672c\n[root@ali-web ~]# docker pull registry:2\nTrying to pull repository docker.io\/library\/registry ... \n2: Pulling from docker.io\/library\/registry\n81033e7c1d6a: Pull complete \nb235084c2315: Pull complete \nc692f3a6894b: Pull complete \nba2177f3a70e: Pull complete \na8d793620947: Pull complete \nDigest: sha256:672d519d7fd7bbc7a448d17956ebeefe225d5eb27509d8dc5ce67ecb4a0bce54\nStatus: Downloaded newer image for docker.io\/registry:2\n# \u540e\u53f0\u542f\u52a8\u8fd0\u884c\n[root@ali-web ~]# docker run -d -p 5000:5000 --restart always --name registry registry:2\nce5b8bfa6d7f535906730ea3a058b00e7cfdaaa20ea0db3c49d700a4e2c8a645\n[root@ali-web ~]# docker images\nREPOSITORY              TAG                 IMAGE ID            CREATED             SIZE\ndocker.io\/openjdk       8-jre               bef23b4b9cac        2 weeks ago         443 MB\ndocker.io\/yezhou\/nginx  latest              ae513a47849c        4 weeks ago         109 MB\ndocker.io\/nginx         latest              ae513a47849c        4 weeks ago         109 MB\ndocker.io\/registry      2                   d1fd7d86a825        4 months ago        33.3 MB\n# tag \u955c\u50cf\n[root@ali-web ~]# docker tag docker.io\/nginx 127.0.0.1:5000\/nginx\n# \u4e0a\u4f20\u5230\u79c1\u6709\u4ed3\u5e93\n[root@ali-web ~]# docker push 127.0.0.1:5000\/nginx\nThe push refers to a repository [127.0.0.1:5000\/nginx]\n7ab428981537: Pushed \n82b81d779f83: Pushed \nd626a8ad97a1: Pushed \nlatest: digest: sha256:e4f0474a75c510f40b37b6b7dc2516241ffa8bde5a442bde3d372c9519c84d90 size: 948\n[root@ali-web ~]# <\/code><\/pre>\n<ul>\n<li>\u7f3a\u70b9\uff1a\u6ca1\u6709\u53ef\u89c6\u5316\u7ba1\u7406\u5de5\u5177\uff0c\u79c1\u6709\u4ed3\u5e93\u670d\u52a1\u5b95\u673a\u9020\u6210\u9ebb\u70e6\uff0c\u6ca1\u6709\u7528\u6237\u7ba1\u7406\u673a\u5236\u3001\u6ca1\u6709\u64cd\u4f5c\u7684\u8bb0\u5f55\u529f\u80fd<\/li>\n<li>\u4f18\u70b9\uff1a\u642d\u5efa\u64cd\u4f5c\u7b80\u5355<\/li>\n<\/ul>\n<h2>\u5229\u7528harbor\u642d\u5efa<\/h2>\n<h3>\u5b89\u88c5harbor<\/h3>\n<p>\u7248\u672c\u53c2\u8003\uff1a<a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/storage.googleapis.com\/harbor-releases\/\">https:\/\/storage.googleapis.com\/harbor-releases\/<\/a><br \/>\n\u4e0b\u8f7d\u5730\u5740\uff1a<a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/storage.googleapis.com\/harbor-releases\/release-1.10.0\/harbor-offline-installer-v1.10.4.tgz\">https:\/\/storage.googleapis.com\/harbor-releases\/release-1.10.0\/harbor-offline-installer-v1.10.4.tgz<\/a><\/p>\n<pre><code class=\"language-bash\">wget https:\/\/storage.googleapis.com\/harbor-releases\/release-1.10.0\/harbor-offline-installer-v1.10.4.tgz\ntar zxvf harbor-offline-installer-v1.10.4.tgz\ncd harbor<\/code><\/pre>\n<h3>\u4fee\u6539\u914d\u7f6eharbor.cfg<\/h3>\n<pre><code>hostname = appblog.cn:8888 \n\nhttp\u8fd8\u662fhttps\u5565\u7684\u81ea\u5df1\u770b\u7740\u6539<\/code><\/pre>\n<p>\u4fdd\u5b58\u9000\u51fa\uff0c\u76f4\u63a5\u8fd0\u884c<code>install.sh<\/code><\/p>\n<pre><code>cd ..\n.\/install.sh<\/code><\/pre>\n<p>\u6ce8\u610f\u4e00\u70b9\uff1aharbor\u9ed8\u8ba4\u4f1a\u5360\u752880\u7aef\u53e3\uff0c\u6240\u4ee5\u8bf7\u786e\u4fdd\u4f60\u768480\u7aef\u53e3\u4e0d\u88ab\u5360\u7528\uff0c\u90a3\u600e\u4e48\u4fee\u6539\u5462\uff1f<\/p>\n<h3>\u4fee\u6539\u914d\u7f6edocker-compose.yml\uff08\u9700\u8981\u6539\u7aef\u53e3\u518d\u8fdb\u884c\uff09<\/h3>\n<p>\u5c06<code>80:80<\/code>\u7684\u7b2c\u4e00\u4e2a80\u6539\u4e3a\u81ea\u5b9a\u4e49\u7684\u7aef\u53e3\u53f7\uff0c\u5982<code>8888:80<\/code><\/p>\n<p>\u7136\u540e\u8fd0\u884c<code>install.sh<\/code><\/p>\n<pre><code class=\"language-bash\">......\n[Step 4]: starting Harbor ...\nCreating network &quot;harbor_harbor&quot; with the default driver\nCreating harbor-log\nCreating redis\nCreating registry\nCreating harbor-db\nCreating harbor-adminserver\nCreating harbor-ui\nCreating nginx\nCreating harbor-jobservice\n\n\u2714 ----Harbor has been installed and started successfully.----\n\nNow you should be able to visit the admin portal at http:\/\/appblog.cn:8888 . \nFor more details, please visit https:\/\/github.com\/vmware\/harbor .<\/code><\/pre>\n<p>\u597d\u7684\uff0c\u6210\u529f\u4e86\uff0c\u6211\u4eec\u6765\u8bbf\u95ee\u4e00\u4e0b\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.yezhou.me\/AppBlog\/images\/\u8fd0\u7ef4\/Harbor.png\" alt=\"Harbor\" \/><\/p>\n<p>\u9ed8\u8ba4\u8d26\u53f7\u5bc6\u7801\uff1a<\/p>\n<ul>\n<li><code>admin<\/code><\/li>\n<li><code>Harbor12345<\/code><\/li>\n<\/ul>\n<p>\u5982\u679c\u60f3\u4fee\u6539\uff0c\u53bb<code>harbor.cfg<\/code>\u4fee\u6539\u3002<\/p>\n<pre><code class=\"language-bash\">[root@ali-web harbor]# docker ps\nCONTAINER ID        IMAGE                                  COMMAND                  CREATED             STATUS                   PORTS                                                                NAMES\nea66b87c5d26        vmware\/harbor-jobservice:v1.5.1        &quot;\/harbor\/start.sh&quot;       7 minutes ago       Up 7 minutes                                                                                  harbor-jobservice\n5fecbc47ea68        vmware\/nginx-photon:v1.5.1             &quot;nginx -g &#039;daemon ...&quot;   7 minutes ago       Up 7 minutes (healthy)   0.0.0.0:443-&gt;443\/tcp, 0.0.0.0:4443-&gt;4443\/tcp, 0.0.0.0:8888-&gt;80\/tcp   nginx\n9ccfa0d137de        vmware\/harbor-ui:v1.5.1                &quot;\/harbor\/start.sh&quot;       7 minutes ago       Up 7 minutes (healthy)                                                                        harbor-ui\nb1f6387545d6        vmware\/harbor-db:v1.5.1                &quot;\/usr\/local\/bin\/do...&quot;   7 minutes ago       Up 7 minutes (healthy)   3306\/tcp                                                             harbor-db\n6bcd46635374        vmware\/registry-photon:v2.6.2-v1.5.1   &quot;\/entrypoint.sh se...&quot;   7 minutes ago       Up 7 minutes (healthy)   5000\/tcp                                                             registry\nc40db866f7d2        vmware\/harbor-adminserver:v1.5.1       &quot;\/harbor\/start.sh&quot;       7 minutes ago       Up 7 minutes (healthy)                                                                        harbor-adminserver\n8d0ee20abfbf        vmware\/redis-photon:v1.5.1             &quot;docker-entrypoint...&quot;   7 minutes ago       Up 7 minutes             6379\/tcp                                                             redis\n17c002dd8b98        vmware\/harbor-log:v1.5.1               &quot;\/bin\/sh -c \/usr\/l...&quot;   7 minutes ago       Up 7 minutes (healthy)   127.0.0.1:1514-&gt;10514\/tcp                                            harbor-log\n[root@ali-web harbor]# docker images\nREPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE\nvmware\/redis-photon           v1.5.1              19245c7a4f51        3 days ago          207 MB\nvmware\/clair-photon           v2.0.1-v1.5.1       e7f0ab982469        3 days ago          303 MB\nvmware\/notary-server-photon   v0.5.1-v1.5.1       611385e920c3        3 days ago          211 MB\nvmware\/notary-signer-photon   v0.5.1-v1.5.1       f9e01495db0e        3 days ago          209 MB\nvmware\/registry-photon        v2.6.2-v1.5.1       2efae6b250b1        3 days ago          198 MB\nvmware\/nginx-photon           v1.5.1              90d35cd72a68        3 days ago          135 MB\nvmware\/harbor-log             v1.5.1              67000769dfac        3 days ago          200 MB\nvmware\/harbor-jobservice      v1.5.1              3f7a7987ca5b        3 days ago          194 MB\nvmware\/harbor-ui              v1.5.1              8dbe945233a8        3 days ago          212 MB\nvmware\/harbor-adminserver     v1.5.1              a11b8eb3f9d8        3 days ago          183 MB\nvmware\/harbor-db              v1.5.1              afa780d73279        3 days ago          526 MB\nvmware\/mariadb-photon         v1.5.1              59ed57632415        3 days ago          526 MB\nvmware\/postgresql-photon      v1.5.1              41b693c0ce50        3 days ago          221 MB\ndocker.io\/openjdk             8-jre               bef23b4b9cac        2 weeks ago         443 MB\nvmware\/harbor-migrator        v1.5.0              466c57ab0dc3        4 weeks ago         1.16 GB\n127.0.0.1:5000\/nginx          latest              ae513a47849c        4 weeks ago         109 MB\ndocker.io\/yezhou\/nginx        latest              ae513a47849c        4 weeks ago         109 MB\ndocker.io\/nginx               latest              ae513a47849c        4 weeks ago         109 MB\nvmware\/photon                 1.0                 4b481ecbef2a        5 weeks ago         130 MB\ndocker.io\/registry            2                   d1fd7d86a825        4 months ago        33.3 MB<\/code><\/pre>\n<p>\u53ef\u4ee5\u770b\u5230\u6211\u4eec\u7684\u8fdb\u7a0b\u548c\u955c\u50cf\u90fd\u591a\u4e86\u5f88\u591a\u4ee5<code>vmware<\/code>\u5f00\u5934\u7684\uff08<code>harbor<\/code>\u662f<code>vmware<\/code>\u516c\u53f8\u7684\u5f00\u6e90\u5de5\u5177\uff09<\/p>\n<p>\u597d\u4e86\uff0c\u5f00\u59cbpush\u6d4b\u8bd5<\/p>\n<pre><code class=\"language-bash\">[root@ali-web harbor]# docker tag docker.io\/nginx appblog.cn:8888\/internet-plus\/nginx\n[root@ali-web harbor]# docker push appblog.cn:8888\/internet-plus\/nginx\nThe push refers to a repository [appblog.cn:8888\/internet-plus\/nginx]\nGet https:\/\/appblog.cn:8888\/v1\/_ping: dial tcp: lookup appblog.cn: no such host<\/code><\/pre>\n<p>\u5b83\u63d0\u793a\u9700\u8981\u7528https\u8bf7\u6c42\u624d\u5b89\u5168\uff0c\u89e3\u51b3\u65b9\u5f0f\u6709\u4e24\u79cd\uff1a<br \/>\n\u7b2c\u4e00\u79cd\uff1adocker\u542f\u52a8\u7684\u65f6\u5019\u6dfb\u52a0\u5bf9\u57df\u540d+\u7aef\u53e3\u7684\u4fe1\u4efb &#8211;insecure-registry=xxxx.xx.xx.xx:8888<br \/>\n\u7b2c\u4e8c\u79cd\uff1a\u6dfb\u52a0ssl\u8bc1\u4e66<\/p>\n<p>Harbor\u91cd\u542f<\/p>\n<pre><code class=\"language-bash\"># docker-compose stop\n# .\/install.sh<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u4e3a\u4ec0\u4e48\u9700\u8981\u642d\u5efa\u79c1\u6709\u4ed3\u5e93\uff0c\u5927\u591a\u662f\u4e3a\u4e86\u901f\u5ea6\uff0c\u6211\u4eec\u5728\u79c1\u6709\u4ed3\u5e93\u4e2d\u7684push\u548cpull\u7684\u901f\u5ea6\u662f\u7279\u522b\u5feb\u7684\u3002 \u5229\u7528regis [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[179],"tags":[482],"class_list":["post-1883","post","type-post","status-publish","format-standard","hentry","category-docker","tag-harbor"],"_links":{"self":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/1883","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/comments?post=1883"}],"version-history":[{"count":0,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/1883\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/media?parent=1883"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/categories?post=1883"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/tags?post=1883"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}