Files
dysync/docs/网络问题解决方案.md
T
yuming ad97fd3da5 整理仓库:扩展 gitignore、归档文档、清理冗余 Dockerfile
- .gitignore 新增忽略 .idea/、videos/、*.tar.gz、*.csproj.user、db 运行时文件
- 根目录 15 个中文运维 md 归档到 docs/
- 删除无部署脚本引用的 Dockerfile 与 Dockerfile-arm(保留 Dockerfile.prod)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 21:28:41 +08:00

3.8 KiB
Raw Blame History

Docker 构建网络问题解决方案

问题分析

错误信息:

dial tcp: lookup docker.mirrors.ustc.edu.cn: no such host

原因:

  • DNS 无法解析中科大镜像源地址
  • Docker Desktop 仍在使用旧的镜像源配置
  • 网络环境可能有限制

解决方案

方案一:重启 Docker Desktop(推荐先试这个)

  1. 完全退出 Docker Desktop

    • 点击状态栏 Docker 图标
    • 选择 "Quit Docker Desktop"
    • 等待完全退出
  2. 重新启动 Docker Desktop

    • 从 Applications 启动 Docker Desktop
    • 等待完全启动(状态栏图标不再闪烁)
  3. 验证新配置是否生效

    docker info | grep -A 10 "Registry Mirrors"
    

    应该看到新的镜像源(阿里云、七牛云等)

  4. 重新构建

    cd /Users/gaotu/WebstormProjects/dysync.net
    docker build -f Dockerfile.prod -t dysync.net:latest .
    

方案二:配置 Docker Desktop 代理(如果有代理)

如果你有可用的 HTTP/HTTPS 代理:

  1. 打开 Docker Desktop 设置

    • 点击状态栏 Docker 图标 → Settings
  2. 配置代理

    • 进入 "Resources" → "Proxies"
    • 启用 "Manual proxy configuration"
    • 填写代理地址和端口
    • 点击 "Apply & Restart"
  3. 重新构建

方案三:使用阿里云容器镜像服务(推荐)

如果你有阿里云账号:

  1. 登录阿里云容器镜像服务

  2. 获取专属加速地址

    • 进入 "镜像加速器" 页面
    • 复制你的专属加速地址(格式:https://xxxxx.mirror.aliyuncs.com)
  3. 更新 Docker 配置

    cat > ~/.docker/daemon.json << EOF
    {
      "builder": {
        "gc": {
          "defaultKeepStorage": "20GB",
          "enabled": true
        }
      },
      "experimental": false,
      "registry-mirrors": [
        "https://你的专属地址.mirror.aliyuncs.com"
      ]
    }
    EOF
    
  4. 重启 Docker Desktop

  5. 重新构建

方案四:手动拉取镜像后构建

如果镜像加速器配置正确,可以尝试手动拉取:

# 手动拉取所需的基础镜像
docker pull node:18-alpine
docker pull mcr.microsoft.com/dotnet/sdk:6.0
docker pull mcr.microsoft.com/dotnet/aspnet:6.0

# 如果拉取成功,再构建
docker build -f Dockerfile.prod -t dysync.net:latest .

方案五:使用 VPN 或科学上网工具

如果你有 VPN 或科学上网工具:

  1. 启动 VPN/科学上网工具
  2. 配置系统代理
  3. 在 Docker Desktop 中配置代理(参考方案二)
  4. 重新构建

方案六:修改 DNS 设置

如果 DNS 解析有问题,可以尝试:

  1. 修改系统 DNS

    • 系统设置 → 网络 → 高级 → DNS
    • 添加 DNS 服务器:223.5.5.5(阿里云)、114.114.114.114(114 DNS)
  2. 刷新 DNS 缓存

    sudo dscacheutil -flushcache
    sudo killall -HUP mDNSResponder
    
  3. 重启 Docker Desktop

当前配置状态

已更新的镜像源配置(~/.docker/daemon.json):

{
  "registry-mirrors": [
    "https://registry.cn-hangzhou.aliyuncs.com",
    "https://dockerhub.azk8s.cn",
    "https://reg-mirror.qiniu.com"
  ]
}

注意:需要重启 Docker Desktop 才能生效!

推荐操作顺序

  1. ✅ 先试方案一:重启 Docker Desktop
  2. 如果还不行,试方案三:配置阿里云专属加速器
  3. 如果还不行,试方案二:配置代理
  4. 最后考虑方案五:使用 VPN

验证步骤

每次尝试后,运行以下命令验证:

# 1. 检查镜像源配置
docker info | grep -A 10 "Registry Mirrors"

# 2. 测试拉取镜像
docker pull node:18-alpine

# 3. 如果拉取成功,开始构建
docker build -f Dockerfile.prod -t dysync.net:latest .