时间:2021-07-01 10:21:17 帮助过:4人阅读
概要来说:
安装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
此时,必然会报一个安全错误:
从错误描述来看,有两种解决办法,一是使用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教程有兴趣的朋友有所帮助。