Docker 工具箱教程 Client.Timeout 等待时超出 headers
Docker Toolbox Tutorial Client.Timeout exceeded while awaiting headers
我正在按照 https://docs.docker.com/get-started/part2/#publish-the-image
上的指南进行操作
在整个指南中,我遇到过这个错误,有时会出现,有时当我重新运行命令时它们会起作用。
docker push %username%/%repository%:%tag%
我会收到 Using default tag: latest
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)
的回复
我正在使用 Windows 主页和 Docker 工具箱。
如果需要任何其他信息,请告诉我。
对于正在查找的其他人,我找到了答案 here which led me to here
这些步骤特别对我很有帮助。以防将来链接断开。
这适用于 Windows 10 Home/Docker 工具箱
- 右击屏幕右下角的wifi图标,打开网络和共享中心。
- 右键单击 "connections:"
处的连接
- 单击“属性”
- 取消选中 IPv6
- 检查 IPv4
- 点击属性
- Select 单选按钮使用以下 DNS 地址
- 优先使用 8.8.8.8
- 重新启动计算机并重试。
以防有人运行他自己的 docker 存储库。
我在 运行
时有一个类似的 "Client.Timeout exceeded while awaiting headers"
docker login myownrepo.com:5000
碰巧我只对5000端口进行了端口转发,而忘记为5001端口添加。
通过添加指向相同 docker-repo-host.
的端口 5001(在我的路由器上)解决了这个问题
只需转到 Docker 的 Settings
> Network
并将 DNS 服务器单选按钮更改为 Fixed
不幸的是,上面的答案对我的情况没有帮助,但是 重新启动 Docker 有帮助。
"Client.Timeout exceeded while awaiting headers" 是多种可能原因的症状。就我而言,这只是 专用网络防火墙 阻止 docker 客户端计算机访问注册表主机的情况。
要测试是否是这种情况(对于可能正在阅读本文的人),请先尝试暂时 禁用专用网络防火墙。
例如,如果私有 docker 注册表托管在 Windows 10 上:
1) 打开 Windows 安全性
2) 单击防火墙和网络保护
3) 确保专用网络 "active" 并点击它
4) 在 "Microsoft Defender Wall" 下关闭私人防火墙
如果 IP 突然可以访问,那么您需要在主机上重新启用防火墙并将其配置为允许访问 docker 注册表。
除非需要访问注册表,否则不要添加代理。在我的公司网络背后的案例中,我添加了导致超时错误的代理,在删除 Docker 桌面中的代理配置后,它得到了解决。希望对大家有帮助。
我在 WSL2 下使用 docker-reg:5000
时遇到了这个问题。
将其添加到 /etc/hosts
无效。
由于docker 在windows 下确实有效,您需要将其添加到WINDOWS 主机文件中。
C:\Windows\System32\drivers\etc\hosts
在我的案例中,缓慢且不稳定的互联网 连接导致了问题。因此,如果可以 提高连接的性能 ,那么就这样做,但在我的情况下,我 重试了多次 并且在一段时间后它起作用了。
我正在按照 https://docs.docker.com/get-started/part2/#publish-the-image
上的指南进行操作在整个指南中,我遇到过这个错误,有时会出现,有时当我重新运行命令时它们会起作用。
docker push %username%/%repository%:%tag%
我会收到 Using default tag: latest
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)
我正在使用 Windows 主页和 Docker 工具箱。
如果需要任何其他信息,请告诉我。
对于正在查找的其他人,我找到了答案 here which led me to here
这些步骤特别对我很有帮助。以防将来链接断开。
这适用于 Windows 10 Home/Docker 工具箱
- 右击屏幕右下角的wifi图标,打开网络和共享中心。
- 右键单击 "connections:" 处的连接
- 单击“属性”
- 取消选中 IPv6
- 检查 IPv4
- 点击属性
- Select 单选按钮使用以下 DNS 地址
- 优先使用 8.8.8.8
- 重新启动计算机并重试。
以防有人运行他自己的 docker 存储库。 我在 运行
时有一个类似的 "Client.Timeout exceeded while awaiting headers"docker login myownrepo.com:5000
碰巧我只对5000端口进行了端口转发,而忘记为5001端口添加。 通过添加指向相同 docker-repo-host.
的端口 5001(在我的路由器上)解决了这个问题只需转到 Docker 的 Settings
> Network
并将 DNS 服务器单选按钮更改为 Fixed
不幸的是,上面的答案对我的情况没有帮助,但是 重新启动 Docker 有帮助。
"Client.Timeout exceeded while awaiting headers" 是多种可能原因的症状。就我而言,这只是 专用网络防火墙 阻止 docker 客户端计算机访问注册表主机的情况。
要测试是否是这种情况(对于可能正在阅读本文的人),请先尝试暂时 禁用专用网络防火墙。
例如,如果私有 docker 注册表托管在 Windows 10 上:
1) 打开 Windows 安全性
2) 单击防火墙和网络保护
3) 确保专用网络 "active" 并点击它
4) 在 "Microsoft Defender Wall" 下关闭私人防火墙
如果 IP 突然可以访问,那么您需要在主机上重新启用防火墙并将其配置为允许访问 docker 注册表。
除非需要访问注册表,否则不要添加代理。在我的公司网络背后的案例中,我添加了导致超时错误的代理,在删除 Docker 桌面中的代理配置后,它得到了解决。希望对大家有帮助。
我在 WSL2 下使用 docker-reg:5000
时遇到了这个问题。
将其添加到 /etc/hosts
无效。
由于docker 在windows 下确实有效,您需要将其添加到WINDOWS 主机文件中。
C:\Windows\System32\drivers\etc\hosts
在我的案例中,缓慢且不稳定的互联网 连接导致了问题。因此,如果可以 提高连接的性能 ,那么就这样做,但在我的情况下,我 重试了多次 并且在一段时间后它起作用了。