Rancher Desktop使用nerdctl无法拉取Docker Hub镜像报i/o超时错误
问题背景
已完成Rancher Desktop下载部署,配置nerdctl作为容器运行时,环境启动后无法拉取Docker Hub任意公共镜像,执行拉取操作时返回如下错误:
INFO[0011] trying next host error="failed to do request: Head
"https://registry-1.docker.io/v2/maildev/maildev/manifests/latest":
dial tcp: lookup registry-1.docker.io on 192.168.47.23:53: read udp
192.168.47.23:37689->192.168.47.23:53: i/o timeout" host=registry-1.docker.ioFATA[0011] failed to resolve reference
"docker.io/maildev/maildev:latest": failed to do request: Head
"https://registry-1.docker.io/v2/maildev/maildev/manifests/latest":
dial tcp: lookup registry-1.docker.io on 192.168.47.23:53: read udp
192.168.47.23:37689->192.168.47.23:53: i/o timeout
排查解决思路
- 先定位DNS故障点:报错核心是域名解析阶段超时,解析请求发往
192.168.47.23:53地址无响应。先在宿主机执行nslookup registry-1.docker.io 192.168.47.23,确认该DNS服务器本身是否可正常解析Docker Hub域名,该地址通常为本地虚拟网卡IP、内网自定义DNS或本地代理监听地址。 - 修正Rancher Desktop网络DNS配置:打开Rancher Desktop设置面板,进入网络配置页,关闭DNS自动获取选项,手动填入可用公共DNS(如223.5.5.5、114.114.114.114),保存配置后完全重启Rancher Desktop,待虚拟机启动完成后重试镜像拉取操作。
- 排查本地代理/防火墙拦截规则:如果宿主机运行了系统代理、VPN或第三方安全防火墙,检查是否拦截了Rancher Desktop虚拟机的出站流量,部分代理会接管虚拟网卡DNS请求但未正确转发,直接导致解析超时。可临时关闭代理/防火墙测试拉取是否恢复,恢复后将Rancher Desktop所属虚拟网段加入代理/防火墙白名单即可。
- 配置镜像加速作为兜底方案:如果直连Docker Hub网络存在连通性问题,可在Rancher Desktop的nerdctl配置项中添加可用的容器镜像加速地址,保存重启后拉取请求会自动走加速通道,绕过直连Docker Hub的网络限制。
- 检查hosts配置项:如果之前手动修改过宿主机或Rancher Desktop虚拟机内部的hosts文件,排查是否存在
registry-1.docker.io相关的错误映射条目,存在则删除对应条目后重试。
内容的提问来源于stack exchange,提问作者David Sagang
相关产品推荐
相关产品推荐

