当我去时docker pull hello-world,我收到以下错误消息:
Error response from daemon: error parsing HTTP 408 response body: invalid character '<' looking for beginning of value: "<html><body><h1>408 Request Time-out</h1>\nYour browser didn't send a complete request in time.\n</body></html>\n\n"
安装的 Docker 版本:
Client:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: Wed Jun 1 21:47:50 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: Wed Jun 1 21:47:50 2016
OS/Arch: linux/amd64
Run Code Online (Sandbox Code Playgroud)
安装使用:curl -fsSL https://get.docker.com/ | sh
我已确保网络存在并且可以访问其他站点。请帮忙
更新 1:问题不能是设置 MTU,因为我可以在几天前从同一台计算机上的 Docker hub 中提取映像。
这个问题也不可能是 HTTP_PROXY 的问题,因为我在我的家庭网络中
Lem*_*Cat 20
我在运行各种 Debian/Raspbian 的 Raspberry Pi 板上多次遇到过这个问题(RPi 型号信息通过 获得cat /proc/cpuinfo | grep Model):
Raspberry Pi Model B Rev 1与基于 Debian 11 (bullseye) 的 RaspbianRaspberry Pi 4 MOdel B Rev 1.4与 Debian 10(破坏者)在这两种情况下,运行docker run --rm hello-world都会产生408此线程中原始问题中报告的 HTTP 状态代码:
$ docker run --rm hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: error parsing
HTTP 408 response body: invalid character '<'
looking for beginning of value: "<html><body>
<h1>408 Request Time-out</h1>\nYour browser
didn't send a complete request in time.\n</body>
</html>\n".
See 'docker run --help'.
Run Code Online (Sandbox Code Playgroud)
解决方案(@Romaan作为旁白指出)是调整 MTU。我这样做如下:
sudo ip link set dev eth0 mtu 1400
docker run --rm hello-world
Run Code Online (Sandbox Code Playgroud)
并且hello-world容器已成功拉取并执行。
有关如何在 Debian 上永久调整网络接口 MTU 的示例可以在此处找到。
该错误消息几乎没有误导性。问题不是存在无效字符,而是网络配置错误。我有 1 个 LAN 接口和 1 个 WLAN 接口。
LAN 接口连接到路由器 A,路由器 A 将请求转发到连接到互联网的路由器 B。而WLAN接口直接连接到路由器B。我忘记删除WLAN配置。
一旦我确保 WLAN 接口被移除,一切就顺利进行了。
简而言之:确保 DNS 解析有效且 MTU 设置正确。
另一个可能的错误原因
如果您使用的是 Mac,请确保允许无限制访问 Web 内容,如下所示:
故障排除的另一个可能步骤
确保您的网络中没有代理或网络过滤器,也就是说,如果可能的话,连接到您的3G网络并重试,看看结果是否不同
| 归档时间: |
|
| 查看次数: |
37218 次 |
| 最近记录: |