构建映像时出现错误“获取https://registry-1.docker.io/v2/:net / http:请求已取消”

问题描述 投票:11回答:5

我在构建图像时遇到以下错误

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)
docker docker-image
5个回答
26
投票

在尝试使用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

11
投票

我认为问题在于你是代理的后面,在这种情况下你需要在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/"

然后在守护进程重新加载后重新启动docker,

 $ sudo systemctl daemon-reload
 $ sudo systemctl restart docker

希望这有效。

参考:https://docs.docker.com/engine/admin/systemd/#httphttps-proxy


2
投票

我有同样的问题,只在30分钟后发现我在VPN网络上工作,阻止其他网站。我离开了VPN,它工作了:)这绝对是一个网络问题。当它说“未经过身份验证”时,我想也许我需要一些登录凭证。


2
投票

我有同样的问题,以下修复对我有用:https://github.com/moby/moby/issues/22635#issuecomment-260063252

在我的例子中,我在/etc/resolv.conf文件中添加了以下2个“nameserver”行。

之前:

nameserver 127.0.0.53

后:

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 127.0.0.53

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在每台服务器上运行以下命令

export 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 update-ca-trust / bin / systemctl restart docker.service


0
投票

对于我的情况,我公司需要在白名单中定义我的IP才能访问cloud.docker文件。因此,如果您有这样的错误,请随时告诉负责人。

© www.soinside.com 2019 - 2024. All rights reserved.