首页 > 解决方案 > Docker Windows 在等待任何拉取图像命令或登录的标头时超出 Client.Timeout

问题描述

尝试docker run hello-world在 Windows 10(无选项)上运行时,我收到此错误(我在许多线程上看到的常见错误):

Unable to find image 'hello-world:latest' locally
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).

我已经有一些早些时候(几个月前)提取的图像正在工作。但我无法提取任何新图像(例如:mongo),甚至无法提取 hello-world 图像。一直在搜索,尝试将 dns 设置为 8.8.8.8/8.8.4.4,docker configs(Docker 桌面 GUI)中的 experimental=true,但无法解决。我没想到的一件事是 docker info 中的 HTTP PROXY,因为我已经从 docker 的 GUI 甚至环境变量中删除了代理设置。

码头工人信息:

Client:
 Debug Mode: false
 Plugins:
  scan: Docker Scan (Docker Inc., v0.3.4)

Server:
 Containers: 3
  Running: 2
  Paused: 0
  Stopped: 1
 Images: 4
 Server Version: 19.03.13
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 8fba4e9a7d01810a393d5d25a3621dc101981175
 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 5.4.39-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 1.941GiB
 Name: docker-desktop
 ID: <Docker Id>
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http://<ip>:port/
 HTTPS Proxy: http://<ip>:port/
 No Proxy: localhost,127.0.0.2,firm.com,firm.org
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
 Product License: Community Engine

有人可以帮助如何从 docker info 中删除这些代理并允许我提取图像吗?我没有在 docker-desktop gui 里面Expose daemon on tcp://localhost:2375 without TLS打勾。Use the WSL 2 based engine同样在代理内部,手动设置已关闭,网络使用 8.8.8.8 的手动 dns 配置。我也无法 ping 到说请求超时的 hub.docker.com,并且尝试在 cmd 中执行 docker login 会返回相同的请求超时错误,但是 docker desktop(GUI) 显示我的用户已登录。我觉得我们是否在能够从 docker info 中删除代理,它可能会解决问题。

标签: windowsdockerproxy

解决方案


我显然用这个改变解决了它:

前: 前

后: 后

在我看来,这很奇怪,因为我们正在禁用手动代理配置,它不应该进入其中,但即使在重新启动和停止服务之后它也不起作用。所以最终我删除了所有代理 url(尽管手动代理已关闭)然后它工作了。我猜只是窗户的东西。


推荐阅读