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

执行docker-compose up时出现连接超时错误,防火墙环境下如何排查?

问题分析与解决方案

错误核心原因

你遇到的错误是Docker Daemon无法通过DNS解析Docker Hub的镜像仓库域名,导致无法拉取mysql:8.0.23镜像,具体表现为DNS请求超时(read udp ... i/o timeout)。你的docker-compose.yml配置本身没有问题,问题出在镜像拉取的网络环节。

可能的解决步骤

1. 手动配置Docker的DNS服务器

Docker默认使用主机的DNS配置,如果主机DNS不可用,可直接给Docker指定公共DNS:

  • Linux:编辑/etc/docker/daemon.json(没有则新建),添加内容:
    {
      "dns": ["8.8.8.8", "114.114.114.114"]
    }
    
    然后重启Docker服务:sudo systemctl restart docker
  • Windows/Mac:打开Docker Desktop设置,找到Docker Engine选项卡,添加上述DNS配置后点击"Apply & Restart"。

2. 检查主机的DNS解析能力

在主机终端执行以下命令,测试是否能正常解析Docker Hub域名:

nslookup registry-1.docker.io

如果同样出现超时,说明主机本身的DNS配置有问题,需要修改主机的DNS服务器(比如在网络设置里换成8.8.8.8)。

3. 排查防火墙/代理的隐性影响

即使你认为不是防火墙问题,仍需确认:

  • 防火墙是否拦截了UDP 53端口的DNS请求,或者拦截了Docker Hub的IP段;
  • 如果主机使用了代理,需确保Docker也配置了对应代理:在daemon.json中添加代理配置(替换为你的代理地址):
    {
      "proxies": {
        "default": {
          "httpProxy": "http://your-proxy-ip:port",
          "httpsProxy": "http://your-proxy-ip:port"
        }
      }
    }
    
    配置后重启Docker。

4. 重置本地网络环境

  • 重启路由器,清空DNS缓存;
  • 临时切换网络(比如使用手机热点),测试是否能正常拉取镜像,排除内网环境的问题。

内容的提问来源于stack exchange,提问作者Deep Kiran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 10:22:38