You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker连接registry-1.docker.io失败:无路由/超时问题求助

Docker无法拉取hello-world镜像的问题解决

错误原因拆解

  1. 初始错误connect: no route to host:
    服务器无法与Docker Hub的IP(52.1.184.176)建立TCP连接,核心原因包括:
    • 服务器网络路由异常,无法访问公网
    • 防火墙/安全组拦截了443端口的出站请求
    • DNS解析返回的IP在当前网络环境下不可达
  2. 修改resolv.conf后出现超时:
    DNS解析可能恢复正常,但网络链路仍未打通,或者新增的DNS服务器响应延迟过高,导致请求超时。

分步解决方法

1. 验证基础网络连通性

  • 先确认服务器能否访问公网:
    ping 8.8.8.8
    
    如果不通,直接联系运维排查服务器的网络接入、路由配置或安全组规则。
  • 若公网连通,测试Docker Hub端口:
    nc -zv 52.1.184.176 443
    
    连接失败则说明443端口被拦截,需要开放出站的443端口权限。

2. 正确配置DNS(避免直接修改resolv.conf)

多数系统会自动覆盖/etc/resolv.conf,需通过系统配置修改DNS:

  • Debian/Ubuntu(systemd-resolved):
    编辑/etc/systemd/resolved.conf:
    [Resolve]
    DNS=8.8.8.8 1.1.1.1
    
    重启服务:
    sudo systemctl restart systemd-resolved
    
  • 验证DNS解析:
    nslookup registry-1.docker.io
    
    能返回多个IP则说明DNS配置有效。

3. 配置Docker代理(若服务器需代理访问公网)

如果服务器处于需代理的网络环境,给Docker添加代理配置:

  1. 创建代理配置目录:
    sudo mkdir -p /etc/systemd/system/docker.service.d
    
  2. 编写代理配置文件http-proxy.conf:
    sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
    
    写入以下内容(替换为实际代理地址):
    [Service]
    Environment="HTTP_PROXY=http://代理IP:端口/"
    Environment="HTTPS_PROXY=http://代理IP:端口/"
    Environment="NO_PROXY=localhost,127.0.0.1"
    
  3. 重载配置并重启Docker:
    sudo systemctl daemon-reload && sudo systemctl restart docker
    

4. 切换国内镜像源(备选方案)

若无法访问官方Docker Hub,改用国内镜像源加速:

  1. 创建/编辑Docker配置文件:
    sudo nano /etc/docker/daemon.json
    
    写入镜像源配置:
    {
      "registry-mirrors": ["https://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"]
    }
    
  2. 重启Docker服务:
    sudo systemctl restart docker
    
  3. 再次测试拉取镜像:
    docker run hello-world
    

内容的提问来源于stack exchange,提问作者Samim Maschal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 12:35:16