docker-registry 的搭建
搭建最新的docker-registry 会遇到问题:
$docker pull 10.0.1.44:5000/ubuntu
2014/12/13 13:02:47 Error: Invalid registry endpoint https://10.0.1.44:5000/v1/: Get https://10.0.1.44:5000/v1/_ping: dial tcp 10.0.1.44:5000: connection refused. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry 10.0.1.44:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/10.0.1.44:5000/ca.crt
这是关于https的,在最新的docker 1.3.3中 无法pull ,因为默认的是https,该怎么办
9 个回复
jamlee - keep me alone
赞同来自:
经过尝试,在我的<strong>客户端</strong>运行:
docker -d ----insecure-registry 10.0.1.44:5000
成功,问题完美解决。
xKenny - Deploy is never easy.
赞同来自: xiaomastack 、CDocer 、nicole 、西弗尔 、方圆小生 、soli 、weschen 、manfat更多 »
我建议你不要加--insecure-registry 的参数启动,不灵活,想象你有多个registry负责不同种类的镜像,你难道要不停更改的docker的启动参数吗?
正确的方式在报错信息里已经有提示了:
In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/10.0.1.44:5000/ca.crt
首先,你不要直接使用docker-registry,你在registry前面套一层nginx代理,在nginx里自己签一组证书,把ca.crt拷贝到 /etc/docker/certs.d/10.0.1.44:5000/ca.crt 就可以了。
这样的好处是,今后你还有第二套registry,你也只是把新的registry证书加入对应的目录,即可下载,而不是再加--insecure-registry重启。
xds2000 - 数人科技CTO
赞同来自:
看你贴的错误信息,解决办法有:docker服务进程加上
--insecure-registry 10.0.1.44:5000
, 就可以解决了。KiwenLau
赞同来自:
sudo vim /etc/default/docker
增加以下一行:
DOCKER_OPTS="$DOCKER_OPTS --insecure-registry=10.0.1.44:5000"
重启Docker
sudo service docker restart
lingsc - 80后IT跑男
赞同来自:
补充下Mac中的具体解决办法:
参考文档:https://github.com/boot2docker ... istry
$ boot2docker init
$ boot2docker up
$ boot2docker ssh "echo $'EXTRA_ARGS=\"--insecure-registry <YOUR INSECURE HOST>\"' | sudo tee -a /var/lib/boot2docker/profile && sudo /etc/init.d/docker restart"
注意:这样启动后,可能会出现如下问题:
(1)FATA Cannot connect to the Docker daemon. Is 'docker -d' running on this host?
解决方法:
退出boot2docker
$boot2docker stop
$boot2docker up
(2)FATA Error: v1 ping attempt failed with error: Get http://192.168.59.103:5000/v1/_ping: dial tcp 192.168.59.103:5000: connection refused
解决办法:这是你忘记启动registry容器造成的
docker start <你的registry容器id>
徐磊 - BlackOps@Qunar
赞同来自:
报错信息已经说的很详细了,要么自己添加证书走HTTPS,要么就用--insecure-registry
zjy19811001
赞同来自:
registry v2版本:依据官网文档搭建的,也出现了上述情况,
注意,注意:
在<strong>客户端</strong> /etc/sysconfig/docker 中添加如下内容:
OPTIONS='--insecure-registry 10.20.140.249:5000 --selinux-enabled'
重启docker服务,服务连接正常。
systemctl restart docker.service
thebeeman
赞同来自:
客户端我设置了'--insecure-registry 192.168.79.182:5000 --selinux-enabled'选项,也重启了daemon,但是连接服务端时还是出现“Error response from daemon: Get https://192.168.79.182:5000/v1/_ping: EOF”的错误,我服务端启动的registry如下:
“docker run -d -p 5000:5000 --restart=always --name registry \
-v
pwd
/certs:/certs \-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
registry”
死活都连接不上,只能在服务端本地测试成功,请问还有哪里需要配置正确的?
allansun - 无名小虾
赞同来自:
自己搭建就是一个大坑,我们公司自己搭建了一套,很快发现最大的问题竟然是硬盘空间,专门划分了100G的硬盘给docker-registry用,结果一个星期就被我们开发人员给装满了(我们采用持续交付,每次提交都会有一个版本,而且因为依赖库比较多,每个版本的新layer就将近1G),最后干脆放弃用自己的私有库,用回hub.docker.com了,算来竟然还是给别人托管更省钱。。。哈哈。。。