我们有一个私人的码头注册(基于portus,但无论如何),我试图将图像推送到这个注册表,但它不工作。如果出现以下错误消息,它将失败:
$ sudo docker login archive.docker-registry.mycompany.com
Username: mylogin
Password:
Error response from daemon: Get https://archive.docker-registry.mycompany.com/v1/users/:
net/http: TLS handshake timeout
$ 我已经在/etc/systemd/system/docker.service.d/http-proxy.conf中配置了代理(我的码头位于centos 7上):
[Service]
Environment="HTTP_PROXY=http://proxy.mycompany.com:8000/" "NO_PROXY=localhost,127.0.0.1,archive.docker-registry.mycompany.com"但还是失败了。
我尝试使用HTTPS_PROXY而不是HTTP_PROXY,使用http或url中的https,我尝试手动下载证书并在系统中配置它们(Update Certs),但它一直失败。
当我以root用户的身份更改此配置文件时,我执行了:
# systemctl daemon-reload
# systemctl restart docker发布于 2017-04-21 11:48:34
实际上,我发现如果我注释掉整个Environment行,它对私有注册中心起作用,但不再适用于坞中心(当然,不再使用代理)。下面是对私有注册表和停靠中心公共注册表都有效的最后解决方案:
在NO_PROXY环境变量中,应该只使用域名,而不是FQDN (包括“归档”)。主机名前缀):
下面是我的配置文件:
[Service]
Environment="HTTP_PROXY=http://proxy.mycompany.com:8000/" "NO_PROXY=localhost,127.0.0.1,docker-registry.mycompany.com"请注意,没有更多的“存档”。也不是“portus”前缀在NO_PROXY中,只是域名开始于“停靠-注册”。
正如我所看到的,docker登录命令行包括“存档”。前缀,这是误导,我认为它必须在NO_PROXY环境变量.但不,不应该。
希望它能帮到别人。我希望我以前在谷歌上找到了答案,但我没有,所以我只是在这里张贴,它可能会有帮助。
发布于 2018-08-27 13:59:16
如果您使用的是私有注册表,则需要将证书放在/etc/docker/certs.d/registryname/ca.crt下面。
注册名将相应更改
另外,请将您的MTU大小更改为1300,这也是我为解决错误所做的一件事。我想你可能已经做过了。MTU更改命令
ip link set dev eth0 mtu 1300
MTU大小对检查非常重要。
发布于 2018-11-06 19:15:45
我安装的最新稳定版本(18.xx)有这个问题,在降级到17.12.0-ce之后,它对我来说很好。
https://stackoverflow.com/questions/43541963
复制相似问题