当前位置: 首页 > 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/代理
http://www.xdnf.cn/news/1032877.html

相关文章:

  • 在Docker上部署datalust/Seq日志服务系统
  • 【DSP笔记 · 第5章】数字滤波器的蓝图:从数学公式到硬件实现的艺术
  • React--》使用vite构建器打造高效的React组件库
  • Docker 基础使用
  • TryHackMe (THM) - SOC基础知识
  • Android音视频流媒体基础总结
  • excel中添加进度条
  • 从大模型到 AI 应用,一共需要几步?
  • Git 工作流与版本管理策略
  • JVM(1)——运行时数据区
  • Hive SQL 执行计划详解:从查看方法到优化应用
  • 学习昇腾开发的第一天--环境配置
  • RabbitMQ的交换机和队列概念
  • 精益数据分析(104/126):免费移动应用的用户活跃率与付费转化优化策略
  • STM32F4通用定时器TIM9-TIM14讲解及PWM呼吸灯实例解读
  • 1 Studying《Arm A715 Software Optimization Guide》
  • 【Python-Day 26】解锁时间魔法:深入解析 time 与 datetime 模块
  • 双重特征c++
  • 共享项目中使用Wpf和Winform——c# CAD二次开发
  • 浏览器指纹-探究前端如何识别用户设备
  • 2.4.1 ASPICE的编码与单元测试
  • 新能源汽车电子架构革命:深度解析AUTOSAR标准与实践
  • 基于U-Net与可分离卷积的肺部分割技术详解
  • error:MISCONF Redis is configured to save RDB snapshots
  • Android 蓝牙默认名称设置分析总结
  • Laravel模板Blade 用法 x-layouts.guest 和x-guest-layout 什么区别
  • 《深度学习:基础与概念》第一章 学习笔记与思考
  • 数据结构 学习 链表 2025年6月14日08点01分
  • 微店商品详情API接口Python攻略
  • 代码随想录算法训练营第三十二天 |【动态规划1-13】