从昨天开始,我再也无法提取图像了。我不能用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,一旦我为该容器使用了一个公共映像,一切都很顺利。然后,我能够找出正确的权限,并解决了错误。