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

165 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 .
```