Docker 私有注册表,禁止 docker push

Docker 私有注册表,禁止 docker push

我设置了一个私有注册表,运行良好。Docker 1.10。我选择更改主机并重新创建证书。在我的服务器上一切运行良好,但在我的客户服务器上,我无法将图像推送到注册表:

unable to ping registry endpoint https://my.customer.private.hostname:5000/v0/
 v2 ping attempt failed with error: Get https://my.customer.private.hostname:5000/v2/: Forbidden
 v1 ping attempt failed with error: Get https://my.customer.private.hostname:5000/v1/_ping: Forbidden

我在 Google 上找不到其他人谈论“禁止”的答案。我在哪里可以搜索以了解?我已经删除了容器、图像、卸载了 docker、重新安装了 docker,但仍然出现相同的错误。我唯一没有删除的是用于存储 docker 数据的 Thinpool(devicemapper)。

答案1

docker 有一个 systemd 配置文件:

/etc/systemd/system/docker.service.d/http-proxy.conf

[服务] 环境="HTTP_PROXY=http://代理:3128“环境=“NO_PROXY=localhost,127.0.0.0/8”

注册表 IP 不是本地主机,因此我需要将主机添加到 NO_PROXY 变​​量中。我仍然不明白为什么第一个主机会工作。重新启动不使用 https(仅 http)的注册表容器并使用 tcpdump 可以帮助我们解决此问题。

答案2

对于我来说,这很奇怪,docker 尝试通过 https 访问 5000 端口,然后你使用 http 对同一端口进行 curl 并且成功了。

可能你正在做:docker pull my.customer.private.hostname:5000 xxx/yyy而不是docker pull my.customer.private.hostname xxx/yyy

问候

相关内容