# 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. **验证新配置是否生效** ```bash docker info | grep -A 10 "Registry Mirrors" ``` 应该看到新的镜像源(阿里云、七牛云等) 4. **重新构建** ```bash 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. **登录阿里云容器镜像服务** - 访问:https://cr.console.aliyun.com/ - 登录你的阿里云账号 2. **获取专属加速地址** - 进入 "镜像加速器" 页面 - 复制你的专属加速地址(格式:`https://xxxxx.mirror.aliyuncs.com`) 3. **更新 Docker 配置** ```bash cat > ~/.docker/daemon.json << EOF { "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "registry-mirrors": [ "https://你的专属地址.mirror.aliyuncs.com" ] } EOF ``` 4. **重启 Docker Desktop** 5. **重新构建** ### 方案四:手动拉取镜像后构建 如果镜像加速器配置正确,可以尝试手动拉取: ```bash # 手动拉取所需的基础镜像 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 缓存** ```bash sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder ``` 3. **重启 Docker Desktop** ## 当前配置状态 已更新的镜像源配置(`~/.docker/daemon.json`): ```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 ## 验证步骤 每次尝试后,运行以下命令验证: ```bash # 1. 检查镜像源配置 docker info | grep -A 10 "Registry Mirrors" # 2. 测试拉取镜像 docker pull node:18-alpine # 3. 如果拉取成功,开始构建 docker build -f Dockerfile.prod -t dysync.net:latest . ```