当前位置:Gxlcms > PHP教程 > Docker:私有仓库的搭建

Docker:私有仓库的搭建

时间:2021-07-01 10:21:17 帮助过:4人阅读

继续,本文描述私有仓库的搭建最简步骤。

概要来说:

  1. 安装registry镜像,启动容器。
  2. CA证书(还有一种办法是直接用HTTP也行,可以省略此步)
  3. 制作镜像,发布。

安装Registry的最简方法是直接Pull一个现成的Registry镜像即可。

docker pull registry

然后启动它。

docker run -p5000:5000-v /home/registry:/tmp/registry registry

暴露5000端口对外服务,同时,装载宿主机的/home/registry目录作为仓库目录。

现在可以push自己的镜像到这个仓库了,需要先给一个镜像打个标签,然后PUSH即可,命令如下:

docker tag java:7-jre hub.wo.cn/yancheng/java
docker push hub.wo.cn/yancheng/java

此时,必然会报一个安全错误:
Docker:私有仓库的搭建

从错误描述来看,有两种解决办法,一是使用HTTP,二是安装CA证书。

方法一,配置成HTTP,速度会稍快,也简单。只需要修改一下 /etc/default/docker 文件,加上一句话:

DOCKER_OPTS="$DOCKER_OPTS --insecure-registry=hub.open.wo.cn"

然后重启Docker,sudo service docker restart,即可正常push了。

方法二,配置安全证书,略显麻烦,尤其是我们的docker registry在nginx后面。

首先,需要生成自己的证书(到服务器上操作),命令如下:

openssl genrsa -des3 -out hub.key2048
openssl rsa -in hub.key -out hub_nopwd.key
openssl req -new -key hub_nopwd.key -out hub.csr
openssl x509 -req -days 3650 -in hub.csr -signkey hub_nopwd.key -out hub.crt

然后,我们配置一下Nginx,增加对HTTPS的支持。

server {
   listen       443;
   server_name  hub.wo.cn;
   ssl  on;
   ssl_certificate      /usr/local/nginx/conf/hub.crt;
   ssl_certificate_key  /usr/local/nginx/conf/hub_nopwd.key;

   location / {
        proxy_pass http://10.250.251.20:5000;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header x-forwarded-for$remote_addr;
   }
}

注意hub.crt和hub_nopwd.key的位置。重启nginx。

现在,需要将这个hub.crt弄到本地,按前面截图的提示放到相应目录下。即:/etc/docker/certs.d/hub.open.wo.cn

再次重启docker,再push就正常了。

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    以上就介绍了Docker:私有仓库的搭建,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

  • 人气教程排行