继续,本文描述私有仓库的搭建最简步骤。
概要来说:
安装Registry的最简方法是直接Pull一个现成的Registry镜像即可。
<code>docker pull registry</code>
然后启动它。
<code>docker run <span>-p</span><span>5000</span>:<span>5000</span><span>-v</span> /home/registry:/tmp/registry registry</code>
暴露5000端口对外服务,同时,装载宿主机的/home/registry目录作为仓库目录。
现在可以push自己的镜像到这个仓库了,需要先给一个镜像打个标签,然后PUSH即可,命令如下:
<code>docker tag java:<span>7</span>-jre hub<span>.wo</span><span>.cn</span>/yancheng/java docker <span>push</span> hub<span>.wo</span><span>.cn</span>/yancheng/java</code>
此时,必然会报一个安全错误:
从错误描述来看,有两种解决办法,一是使用HTTP,二是安装CA证书。
方法一,配置成HTTP,速度会稍快,也简单。只需要修改一下 /etc/default/docker 文件,加上一句话:
<code>DOCKER_OPTS=<span>"<span>$DOCKER_OPTS</span> --insecure-registry=hub.open.wo.cn"</span></code>
然后重启Docker,sudo service docker restart
,即可正常push了。
方法二,配置安全证书,略显麻烦,尤其是我们的docker registry在nginx后面。
首先,需要生成自己的证书(到服务器上操作),命令如下:
<code>openssl genrsa -des3 -<span>out</span> hub<span>.key</span><span>2048</span> openssl rsa -<span>in</span> hub<span>.key</span> -<span>out</span> hub_nopwd<span>.key</span> openssl req -new -key hub_nopwd<span>.key</span> -<span>out</span> hub<span>.csr</span> openssl x509 -req -days <span>3650</span> -<span>in</span> hub<span>.csr</span> -signkey hub_nopwd<span>.key</span> -<span>out</span> hub<span>.crt</span></code>
然后,我们配置一下Nginx,增加对HTTPS的支持。
<code>server { listen <span>443</span>; server_name hub<span>.</span>wo<span>.</span><span>cn</span>; ssl <span>on</span>; ssl_certificate /usr/<span>local</span>/nginx/conf/hub<span>.</span>crt; ssl_certificate_key /usr/<span>local</span>/nginx/conf/hub_nopwd<span>.</span>key; location <span>/</span> { proxy_pass http:<span>//10.250.251.20:5000;</span> proxy_redirect off; proxy_set_header Host <span>$host</span>; proxy_set_header x<span>-forwarded</span><span>-for</span><span>$remote_addr</span>; } }</code>
注意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教程有兴趣的朋友有所帮助。