树莓派执行docker pull报错No route to host 无法连接Docker Hub
树莓派Docker Hub连接故障解决方案
报错说明
拉取镜像时报错:
sudo docker pull portainer/portainer-ce:latest Trying to pull repository docker.io/portainer/portainer-ce ... Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
端口测试报错:
curl: (7) Failed connect to registry-1.docker.io:443; No route to host
上述报错均指向树莓派到Docker Hub官方仓库服务器的网络链路不通,按以下优先级排查:
1 基础网络校验
- 校验树莓派公网连通性:执行
ping 8.8.8.8 -c 4,若丢包率100%,优先排查树莓派有线/无线网络连接状态、路由器上网配置。 - 校验域名解析状态:执行
nslookup registry-1.docker.io,若解析失败或返回IP异常,修改/etc/resolv.conf将DNS替换为公共DNS:114.114.114.114或8.8.8.8,刷新DNS缓存后重试。
2 路由与防火墙校验
- 执行
ip route show确认存在默认路由,无默认路由需重新配置网络网关参数。 - 执行
sudo iptables -L -n排查本地防火墙规则,确认未封禁443端口出站、未封禁Docker Hub对应IP段,可临时执行sudo iptables -F清空规则测试连通性。 - 排查上级路由器、光猫的访问控制规则,确认未封禁Docker Hub相关网段、未开启海外站点访问限制。
3 Docker镜像源替换(网络链路正常后可选优化)
编辑/etc/docker/daemon.json配置国内镜像加速器,避免后续访问Docker Hub官方节点不稳定:
{ "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com" ] }
配置完成后执行以下命令重启Docker生效:
sudo systemctl daemon-reload && sudo systemctl restart docker
内容的提问来源于stack exchange,提问作者shalene
相关产品推荐
相关产品推荐

