继续,本文描述私有仓库的搭建最简步骤。
概要来说:
安装registry镜像,启动容器。ca证书(还有一种办法是直接用http也行,可以省略此步)制作镜像,发布。 安装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/javadocker push hub.wo.cn/yancheng/java
此时,必然会报一个安全错误:
从错误描述来看,有两种解决办法,一是使用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.key2048openssl rsa -in hub.key -out hub_nopwd.keyopenssl req -new -key hub_nopwd.key -out hub.csropenssl 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 ').text(i)); }; $numbering.fadein(1700); }); }); 以上就介绍了docker:私有仓库的搭建,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。