Docker:来自守护进程的错误响应:Gethttps://registry-1.docker.io/v2/:net/h



从昨天开始,我再也无法提取图像了。我不能用docker login登录docker。出现相同的错误:

Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

我不支持任何代理,我所有的docker容器本身都运行良好。我在家里运行它,我使用的唯一反向代理是在容器中运行,这不可能是原因。

运行于:

  • Ubuntu 18.04.4 LTS
  • Docker版本19.03.5,构建633a0ea

这帮助了我:

sudo nano /etc/resolv.conf

名称服务器设置为8.8.8.8

重启码头恶魔。

sudo systemctl restart docker

尝试更新/etc/resolv.conf

nameserver 8.8.8.8
nameserver 8.8.4.4

我在所有工作节点中添加了名称服务器8.8.8.8,解决了问题

这通常发生在公司网络上的代理OR后面。尽管您在shell docker上本地导出代理,但您并不理解这一点。所以解决方法是-

创建一个文件(如果不存在(-/etc/systemd/system/doker.service.d/http-proxy.conf

#添加代理服务器详细信息如下-

【服务】

环境=";HTTP_PROXY=http://proxy.example.com:port/"环境=";HTTPS_PROXY=https://proxy.example.com:port/">

(注意尾部的"/",这一点非常重要(

systemctl后台程序重载

systemctl重启docker

在我的例子中,它在配置代理后得到解决。我正在使用Windows Docker(有关更多详细信息,请参阅此处的"代理配置"部分(

当我升级到使用Cloudflare时,我遇到了类似的问题。为我解决这个问题的是:

  • 在Cloudflare或谷歌云中导航到您的DNS记录
  • 删除docker和nexus的DNS记录,如果你有
  • 则DNS记录应当被自动重新创建

瞧,问题解决了。

我从另一个来源也遇到过一次:一个docker脚本试图使用一个私有的docker映像和repo,一旦我为该容器使用了一个公共映像,一切都很顺利。然后,我能够找出正确的权限,并解决了错误。

相关内容

最新更新