错误"获取https://registry-1.docker.io/v2/:net / http:请求已取消"同时建立形象

时间:2018-01-02 06:16:26

标签: docker docker-image

构建图像时出现以下错误

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)

15 个答案:

答案 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

中的HTTTP_PROXY相同
[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)

这可能是旧的,但可以在这里修复

https://success.docker.com/article/i-get-x509-certificate-signed-by-unknown-authority-error-when-i-try-to-login-to-my-dtr-with-default-certificates 在每台服务器上运行以下命令

导出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 连接中收到此错误。切换到另一个提供商,一切都很好。