Docker私有仓库问题

4

我在 UBUNTU 14.04 上运行私有注册表:

docker run -d -p 5000:5000 registry

该进程出现在我的 docker 进程列表中。我输入命令:curl my-external-ip,结果如下:

"\"docker-registry server\""

问题是,当我尝试将镜像推送到本地主机时,它可以正常工作,但之后我想要推送到外部 IP (必须对更多的人可用)时,我得到以下消息:

The push refers to a repository [MY-EXTERNAL-IP:5000/hello] (len: 1) unable to ping registry endpoint https://MY-EXTERNAL-IP:5000/v0/ v2 ping attempt failed with error: Get https://MY-EXTERNAL-IP:5000/v2/: EOF v1 ping attempt failed with error: Get ht*ps://MY-EXTERNAL-IP:5000/v1/_ping: EOF

我在公司使用代理,但我已经在我的 docker 文件中增加了 export http_proxy, https_proxy, ftp_proxy--insecure-registry

2个回答

1
似乎您的Docker守护程序无法通过https协议(通常使用443端口)访问Docker注册表(您的外部IP地址)。您可以首先检查一下。
但是在不安全模式下,网络会出现在http协议上。因此,您可以告诉Docker守护程序信任不安全的注册表。
尝试使用--insecure-registry="YOUR_EXTERNAL_IP"运行Docker守护程序。

1
如果您不想重新启动Docker服务,可以使用docker pull --allow-insecure-ssl来完成相同的操作,但是在客户端上进行。 - hd.deman

0

看起来你的Docker守护进程仍然不理解应该通过HTTP而不是HTTPS访问你的$EXTERNAL_IP上的注册表。你需要确保守护进程使用--insecure-registry $EXTERNAL_IP选项运行:

ps aux | grep docker

如果你无法在那里找到它,你可能在你的DOCKER_OPTIONS中犯了一个错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接