我在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
。我还需要做些什么吗?
任何帮助将不胜感激。
答案 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
中添加该指令,以便在会话中保持持久性)