Docker:无法从远程私有注册表中提取图像

时间:2016-03-14 16:14:52

标签: docker docker-registry

我在172.20.20.1上运行了一个私人注册表。在另一台机器上,我可以使用HTTP API来检索注册表信息,例如:

curl http:172.20.20.1:5000/v2/_catalog

工作正常。

但是我无法从该注册表中提取图片:

docker pull 172.20.20.1:5000/my_image

我得到504错误(超时)。

据说,我在非安全模式下运行注册表。为此,我添加了/etc/default/docker

DOCKER_OPTS="--insecure-registry=172.20.20.1:5000"

并在所有运行docker的计算机上重新启动docker service:sudo service docker restart。我还需要做些什么吗?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

我找到了解决方案!

我已将DOCKER_OPTS="--insecure-registry=172.20.20.1:5000"更改为DOCKER_OPTS="-D --tls=false ---insecure-registry 172.20.20.1:5000"并重新启动;

$ sudo restart docker

一切正常。

答案 1 :(得分:1)

我更喜欢在安全tls模式下运行我的私人注册表。

docker run -d -p 5000:5000 --restart=always --name registry -v /path/to/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/crt -e REGISTRY_HTTP_TLS_KEY=/certs/key registry:2

然后,我将(必须从该注册表中取出的其他机器)添加到/etc/ssl/certs/ca-certificates.crt的证书 (使用boot2docker,我在/var/lib/boot2docker/bootsync.sh中添加该指令,以便在会话中保持持久性)

然后,我可以毫无问题地从任何机器推送/拉到该注册表。

相关问题