构建图像时出现以下错误
Step 1/10 : FROM ubuntu:14.04
Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
答案 0 :(得分:41)
在 Mac OS X 上,我通过不使用实验性虚拟化框架解决了这个问题。
Preferences -> Experimental Features
答案 1 :(得分:19)
在尝试使用Win10上的Docker构建或拉取图像时,我遇到了同样的问题。将Docker vEthernet(DockerNAT)
网络适配器的DNS更改为8.8.8.8
为我修复它,如GitHub issue所述。
要更改DNS,请转到 Docker(TrayIcon) - > 设置 - > 网络并设置固定DNS服务器 ip = 8.8.8.8
。
更改Windows网络适配器配置中的DNS服务器也有效。
重启后,Docker可以再次拉动和构建图像。
版本信息:
Windows 10 x64 Enterprise Version 1709
$ docker version
Client:
Version: 17.12.0-ce
API version: 1.35
Go version: go1.9.2
Git commit: c97c6d6
Built: Wed Dec 27 20:05:22 2017
OS/Arch: windows/amd64
Server:
Engine:
Version: 17.12.0-ce
API version: 1.35 (minimum version 1.12)
Go version: go1.9.2
Git commit: c97c6d6
Built: Wed Dec 27 20:12:29 2017
OS/Arch: linux/amd64
Experimental: true
答案 2 :(得分:10)
我认为问题在于你是代理的后面,在这种情况下你需要在Docker systemd服务文件中编写手动配置。这将覆盖默认的docker.service
文件。
如果您使用的是Docker for Windows,那么只需在" vEthernet(DockerNAT)"上设置默认DNS为8.8.8.8。网络适配器。但是,请记住,这不是最佳做法,因为您将从办公室网络中露出来。
在linux环境中,您可以在HTTP_PROXY或HTTPS_PROXY后面添加环境变量,因为您分别使用端口80或443。如下/etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/"
与/etc/systemd/system/docker.service.d/https-proxy.conf
[Service]
Environment="HTTPS_PROXY=https://proxy.example.com:443/"
然后在deamon reload后重新启动docker,
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
希望这有效。
参考:https://docs.docker.com/engine/admin/systemd/#httphttps-proxy
答案 3 :(得分:6)
当您选中“实验性功能”选项卡下的“使用新的虚拟化框架”框时,在 Big Sur 11.3.1、Intel 上会发生此错误。取消选中该框并重新启动 Docker 为我解决了这个问题。
答案 4 :(得分:2)
我遇到了同样的问题,以下修复程序对我有用: https://github.com/moby/moby/issues/22635#issuecomment-260063252
对于我来说,我已经在/etc/resolv.conf文件中添加了以下2条“名称服务器”行。
之前:
nameserver 127.0.0.53
之后:
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 127.0.0.53
答案 5 :(得分:1)
这可能是旧的,但可以在这里修复
导出DOMAIN_NAME = bootstrap.node1.local export TCP_PORT = 5000 openssl s_client -connect $ DOMAIN_NAME:$ TCP_PORT -showcerts / dev / null | openssl x509 -outform PEM | tee /etc/pki/ca-trust/source/anchors/$DOMAIN_NAME.crt 更新CA信任 / bin / systemctl restart docker.service
答案 6 :(得分:1)
我遇到了同样的问题,仅在30分钟后才发现我在VPN网络上工作,该工作阻止了其他站点。我退出了VPN,它起作用了:)这绝对是网络问题。当它说“未经身份验证”时,我想也许我需要一些登录凭据。
答案 7 :(得分:1)
+1,对我有用,但是如果您是公用互联网,则还需要确保禁用代理设置,如果您在公司网络中,则必须设置代理服务器
答案 8 :(得分:1)
执行Ansible AWX安装时会遇到此问题。
我有自己的私有DNS:192.168.0.254和192.168.0.253,但收到相同的错误。
将DNS更改回8.8.8.8和8.8.4.4后问题得到解决。
答案 9 :(得分:0)
对于我来说,我的公司需要在白名单中定义我的IP,以便访问cloud.docker文件。因此,如果您有这样的错误,请立即告诉负责人。
答案 10 :(得分:0)
我在群集中部署注册表存在相同的问题。重新启动docker帮助,但一段时间后再次发生。
使用docker-compose重新部署注册表
sudo docker-compose up -d
一切正常
答案 11 :(得分:0)
有时我会遇到此错误,我的docker映像之前曾经很平滑地构建,但是当我必须删除所有映像时(即使我没有对docker配置文件进行任何更改或代码中没有任何错误)。这仍然会发生。
所以我认为这可能是由连接引起的,因为它执行了“获取https://registry-1.docker.io/v2/:.....”
我将DNS更改为google DNS 8.8.8.8和8.8.4.4,然后就可以了。 祝你好运!
答案 12 :(得分:0)
当我尝试构建 elasticsearch 时,我在ubuntu上遇到了这个问题:
我得到了这个错误:
ERROR: Get https://docker.elastic.co/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
这是我的网络连接问题。我正在使用VPN。 因此我断开我的VPN连接,并且一切正常。
由于某些原因,它试图查找似乎在我断开VPN连接后一切正常的本地域内的域。
答案 13 :(得分:0)
我的问题是使用 Windows WSL,您不仅需要在 Docker 桌面客户端和容器中设置上述静态 dns 服务器,而且还需要添加
# A tibble: 9 x 2
id `start time`
<dbl> <chr>
1 1 11:30 am
2 2 12:30 pm
3 3 1:30 pm
4 1 11:30 am
5 2 12:30 pm
6 3 1:30 pm
7 1 11:30 am
8 2 12:30 pm
9 3 1:30 pm
到您的 linux 容器中的 [network]
generateResolvConf = false
。您需要按照 strptime()
中的说明重新启动容器,或者您可以重新启动您的电脑。
答案 14 :(得分:-3)
我从自己的 Internet 连接中收到此错误。切换到另一个提供商,一切都很好。