当前位置: 首页 > 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.dtcms.com/a/249750.html

相关文章:

  • 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 构建系统概述
  • CAD中DWG到DXF文件解析(一)
  • Linux入门(十六)shellshell变量设置环境变量位置参数变量预定义变量
  • langchain_mcp_adapters - MultiServerMCPClient 获取工具
  • 全球化2.0|云轴科技ZStack联合Teleplex举办技术沙龙 · 吉隆坡站
  • Flask文件上传与异常处理完全指南
  • 【Qt】QStateMachine状态机-对状态机分组、历史状态,实现复杂状态机
  • Git命令与代码仓库管理
  • qt中自定义控件编译成动态库
  • RabbitMQ核心函数的参数意义和使用场景
  • 深入解析JVM字节码执行引擎