当前位置: 首页 > news >正文

Docker 在尝试连接 Docker Hub 时遇到网络问题(超时)

1. 检查虚拟机网络连接

确保虚拟机可以访问互联网:

ping 8.8.8.8  # 测试基础网络
ping google.com # 测试DNS解析
  • 如果失败:检查虚拟机网络设置(如 NAT/桥接模式),确保主机网络正常。

2. 解决 DNS 问题(常见原因)

Docker 可能无法解析 registry-1.docker.io

nslookup registry-1.docker.io  # 检查域名解析
  • 若解析失败
    方法 1:修改虚拟机的 DNS 配置(如使用 8.8.8.8):
    echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
    
    方法 2:修改 Docker 的 DNS 设置:
    创建或编辑 /etc/docker/daemon.json
    {"dns": ["8.8.8.8", "114.114.114.114"]
    }
    
    重启 Docker:
    sudo systemctl restart docker
    

3. 配置代理(如果主机使用代理上网)

如果主机通过代理访问互联网,需在虚拟机中配置代理:

  • 为 Docker 服务设置代理
    创建配置文件 /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"
    

    应用配置:

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
  • 临时测试(不推荐长期使用):

    export HTTP_PROXY=http://<代理IP>:<端口>
    export HTTPS_PROXY=http://<代理IP>:<端口>
    sudo systemctl restart docker
    

4. 检查防火墙

虚拟机或主机的防火墙可能阻止 Docker 访问外网:

  • 虚拟机内:临时关闭防火墙测试
    sudo ufw disable                # Ubuntu
    sudo systemctl stop firewalld   # CentOS
    
  • 主机防火墙:确保允许虚拟机的出站连接(如 VMware/NAT 的虚拟网卡)。

5. 调整 Docker 镜像地址(关键步骤)

编辑 /etc/docker/daemon.json(如果没有就新增):

{"registry-mirrors" : ["https://docker.registry.cyou","https://docker-cf.registry.cyou","https://dockercf.jsdelivr.fyi","https://docker.jsdelivr.fyi","https://dockertest.jsdelivr.fyi","https://mirror.aliyuncs.com","https://dockerproxy.com","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","https://docker.mirrors.ustc.edu.cn","https://mirror.iscas.ac.cn","https://docker.rainbond.cc","https://do.nark.eu.org","https://dc.j8.work","https://dockerproxy.com","https://gst6rzl9.mirror.aliyuncs.com","https://registry.docker-cn.com","http://hub-mirror.c.163.com","http://mirrors.ustc.edu.cn/","https://mirrors.tuna.tsinghua.edu.cn/","http://mirrors.sohu.com/"],"insecure-registries" : ["registry.docker-cn.com","docker.mirrors.ustc.edu.cn"],"debug": true,"experimental": false
}

重启 Docker:

sudo systemctl daemon-reload
sudo systemctl restart docker

6. 检查 Docker Hub 状态

访问 Docker Status 页面 确认 Docker Hub 服务是否正常。


7. 其他尝试

  • 重启 Docker 服务
    sudo systemctl restart docker
    
  • 更新 Docker 版本
    sudo apt-get update && sudo apt-get upgrade docker-ce  # Ubuntu
    

总结排查流程

正常
失败
失败
正常
需要代理
无需代理
问题解决
未解决
启动容器报错
检查虚拟机网络
检查 DNS 解析
调整虚拟机网络设置
修改 DNS 配置
检查代理需求
配置 Docker 代理
检查防火墙
临时关闭防火墙测试
配置防火墙规则
检查 Docker Hub 状态

完成上述步骤后,再次运行容器(如 docker run hello-world)测试是否成功。如果问题依旧,请提供以下信息以便进一步排查:

  • 虚拟机操作系统及版本
  • Docker 版本 (docker version)
  • 虚拟机网络模式(NAT/桥接)
  • 主机是否使用 VPN/代理

相关文章:

  • 27 - ASPP模块
  • TI 毫米波雷达走读系列—— 3DFFT及测角
  • 疫菌QBD案例
  • Spring-rabbit重试消费源码分析
  • 低温对MOSFET的影响
  • SpringBoot打包运行原理和加载机制原理
  • 篇章六 论坛系统——业务开发——实现业务功能
  • JUC核心解析系列(四)——同步工具类 (Synchronizers)深度解析
  • Pytorch 卷积神经网络参数说明一
  • OSGI 是什么,有哪些具体应用、java8、9、10、11比较
  • uni-app项目实战笔记11--定义scss颜色变量方便页面引用
  • HarmonyOS 组件复用 指南
  • [直播推流] 使用 librtmp 库推流
  • 开心灿烂go开发面试题
  • C++/OpenCV地砖识别系统结合 Libevent 实现网络化 AI 接入
  • 雪豹速清APP:高效清理,畅享流畅手机体验
  • 【C++进阶篇】哈希的应用(位图)
  • 代码随想录算法训练营day4
  • Verilog自适应位宽与指定位宽不同导致模块无法正常执行
  • CMake 构建系统概述
  • 南京公司网站建设怎么收费/友情链接互换
  • 建设银行网站的登录验证程序安全吗/南阳本地网络推广优化公司
  • 住房和城乡建设网站/nba最新排名公布
  • 抚顺市城市建设档案馆网站/站长统计app最新版本2023
  • 优秀网站设计有哪些/百度竞价什么意思
  • 哪个网站做h5号/海南百度推广电话