ad97fd3da5
- .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>
165 lines
3.8 KiB
Markdown
165 lines
3.8 KiB
Markdown
# 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 .
|
||
```
|
||
|