mirror of
https://github.com/handsomezhuzhu/QQuiz.git
synced 2026-02-20 12:00:14 +00:00
🔧 Fix Docker network issues for China users
## 修复 ### Docker Compose - 移除过时的 version 字段警告 - 优化配置以支持最新版本 ### 网络优化 - 添加 Docker 镜像加速器配置指南 - 创建自动化配置脚本 - 提供国内优化版启动脚本 ## 新增文件 - DOCKER_MIRROR_SETUP.md: 详细的镜像加速配置教程 - setup_docker_mirror.bat: 交互式配置指南 - start_windows_china.bat: 国内网络优化版启动脚本 ## 改进 - 解决 Docker Hub 访问慢/失败问题 - 提供多个国内镜像源配置 - 自动检测和提示配置镜像加速 🚀 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
199
DOCKER_MIRROR_SETUP.md
Normal file
199
DOCKER_MIRROR_SETUP.md
Normal file
@@ -0,0 +1,199 @@
|
||||
# Docker 镜像加速器配置指南
|
||||
|
||||
## 问题描述
|
||||
|
||||
错误信息:`failed to resolve reference "docker.io/library/postgres:15-alpine"`
|
||||
|
||||
**原因**:无法访问 Docker Hub,需要配置国内镜像加速器。
|
||||
|
||||
---
|
||||
|
||||
## 解决方案一:配置 Docker Desktop 镜像加速(推荐)
|
||||
|
||||
### 方法 1:使用阿里云镜像加速器
|
||||
|
||||
1. **打开 Docker Desktop**
|
||||
|
||||
2. **进入设置**
|
||||
- 点击右上角齿轮图标 ⚙️
|
||||
- 选择 "Docker Engine"
|
||||
|
||||
3. **添加镜像加速器配置**
|
||||
|
||||
在 JSON 配置中添加以下内容:
|
||||
|
||||
```json
|
||||
{
|
||||
"builder": {
|
||||
"gc": {
|
||||
"defaultKeepStorage": "20GB",
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
"experimental": false,
|
||||
"registry-mirrors": [
|
||||
"https://docker.mirrors.ustc.edu.cn",
|
||||
"https://hub-mirror.c.163.com",
|
||||
"https://mirror.baidubce.com"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
4. **应用并重启**
|
||||
- 点击 "Apply & Restart"
|
||||
- 等待 Docker Desktop 重启完成
|
||||
|
||||
5. **验证配置**
|
||||
|
||||
```powershell
|
||||
docker info | findstr "Registry Mirrors"
|
||||
```
|
||||
|
||||
应该看到配置的镜像地址。
|
||||
|
||||
---
|
||||
|
||||
## 解决方案二:手动拉取镜像(临时方案)
|
||||
|
||||
如果配置镜像加速器后仍然失败,可以手动拉取镜像:
|
||||
|
||||
```powershell
|
||||
# 尝试使用不同的镜像源拉取
|
||||
docker pull docker.mirrors.ustc.edu.cn/library/postgres:15-alpine
|
||||
docker tag docker.mirrors.ustc.edu.cn/library/postgres:15-alpine postgres:15-alpine
|
||||
|
||||
docker pull docker.mirrors.ustc.edu.cn/library/node:18-alpine
|
||||
docker tag docker.mirrors.ustc.edu.cn/library/node:18-alpine node:18-alpine
|
||||
|
||||
docker pull docker.mirrors.ustc.edu.cn/library/python:3.11-slim
|
||||
docker tag docker.mirrors.ustc.edu.cn/library/python:3.11-slim python:3.11-slim
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 解决方案三:使用国内可用的基础镜像
|
||||
|
||||
修改 `docker-compose.yml` 使用国内镜像源:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
postgres:
|
||||
image: registry.cn-hangzhou.aliyuncs.com/library/postgres:15-alpine
|
||||
# 或使用
|
||||
# image: docker.mirrors.ustc.edu.cn/library/postgres:15-alpine
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 推荐配置(完整版)
|
||||
|
||||
### Docker Desktop 完整配置
|
||||
|
||||
```json
|
||||
{
|
||||
"builder": {
|
||||
"gc": {
|
||||
"defaultKeepStorage": "20GB",
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
"experimental": false,
|
||||
"features": {
|
||||
"buildkit": true
|
||||
},
|
||||
"registry-mirrors": [
|
||||
"https://docker.mirrors.ustc.edu.cn",
|
||||
"https://hub-mirror.c.163.com",
|
||||
"https://mirror.baidubce.com",
|
||||
"https://dockerproxy.com"
|
||||
],
|
||||
"insecure-registries": [],
|
||||
"debug": false
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 常用镜像加速器地址
|
||||
|
||||
| 提供商 | 镜像地址 | 说明 |
|
||||
|--------|----------|------|
|
||||
| 中科大 | https://docker.mirrors.ustc.edu.cn | 稳定,推荐 |
|
||||
| 网易 | https://hub-mirror.c.163.com | 速度快 |
|
||||
| 百度云 | https://mirror.baidubce.com | 国内访问快 |
|
||||
| Docker Proxy | https://dockerproxy.com | 备用 |
|
||||
|
||||
---
|
||||
|
||||
## 验证是否成功
|
||||
|
||||
### 1. 检查配置
|
||||
```powershell
|
||||
docker info
|
||||
```
|
||||
|
||||
查找 "Registry Mirrors" 部分,应该显示配置的镜像地址。
|
||||
|
||||
### 2. 测试拉取镜像
|
||||
```powershell
|
||||
docker pull hello-world
|
||||
```
|
||||
|
||||
如果成功,说明镜像加速器配置正确。
|
||||
|
||||
### 3. 重新启动 QQuiz
|
||||
```powershell
|
||||
cd E:\QQuiz
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 如果仍然失败
|
||||
|
||||
### 检查网络连接
|
||||
|
||||
```powershell
|
||||
# 测试是否能访问镜像加速器
|
||||
curl https://docker.mirrors.ustc.edu.cn
|
||||
```
|
||||
|
||||
### 尝试其他镜像源
|
||||
|
||||
如果某个镜像源不可用,尝试注释掉它,只保留可用的:
|
||||
|
||||
```json
|
||||
{
|
||||
"registry-mirrors": [
|
||||
"https://docker.mirrors.ustc.edu.cn"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 检查防火墙/代理
|
||||
|
||||
- 暂时关闭防火墙测试
|
||||
- 如果使用代理,在 Docker Desktop 设置中配置代理
|
||||
|
||||
---
|
||||
|
||||
## 完成后的下一步
|
||||
|
||||
配置成功后:
|
||||
|
||||
```powershell
|
||||
# 1. 重新启动服务
|
||||
cd E:\QQuiz
|
||||
docker-compose down
|
||||
docker-compose up -d
|
||||
|
||||
# 2. 查看启动日志
|
||||
docker-compose logs -f
|
||||
|
||||
# 3. 访问应用
|
||||
# http://localhost:3000
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
祝你成功!🎉
|
||||
@@ -1,5 +1,3 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:15-alpine
|
||||
|
||||
56
setup_docker_mirror.bat
Normal file
56
setup_docker_mirror.bat
Normal file
@@ -0,0 +1,56 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
title QQuiz - 配置 Docker 镜像加速器
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo 配置 Docker 镜像加速器
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
echo [提示] 此脚本将帮助您配置 Docker Desktop 使用国内镜像源
|
||||
echo.
|
||||
echo 请按照以下步骤操作:
|
||||
echo.
|
||||
echo 1. 打开 Docker Desktop
|
||||
echo 2. 点击右上角的齿轮图标 ⚙️ (设置)
|
||||
echo 3. 选择左侧菜单的 "Docker Engine"
|
||||
echo 4. 在 JSON 配置中找到或添加 "registry-mirrors" 部分
|
||||
echo.
|
||||
echo 将以下内容复制到配置中:
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo "registry-mirrors": [
|
||||
echo "https://docker.mirrors.ustc.edu.cn",
|
||||
echo "https://hub-mirror.c.163.com",
|
||||
echo "https://mirror.baidubce.com"
|
||||
echo ]
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo 完整配置示例:
|
||||
echo.
|
||||
echo {
|
||||
echo "builder": {
|
||||
echo "gc": {
|
||||
echo "defaultKeepStorage": "20GB",
|
||||
echo "enabled": true
|
||||
echo }
|
||||
echo },
|
||||
echo "experimental": false,
|
||||
echo "registry-mirrors": [
|
||||
echo "https://docker.mirrors.ustc.edu.cn",
|
||||
echo "https://hub-mirror.c.163.com",
|
||||
echo "https://mirror.baidubce.com"
|
||||
echo ]
|
||||
echo }
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo 5. 点击 "Apply & Restart" 应用并重启 Docker
|
||||
echo 6. 等待 Docker Desktop 重启完成
|
||||
echo 7. 重新运行 start_windows.bat
|
||||
echo.
|
||||
|
||||
pause
|
||||
132
start_windows_china.bat
Normal file
132
start_windows_china.bat
Normal file
@@ -0,0 +1,132 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
title QQuiz - 启动服务 (国内优化版)
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo QQuiz - 智能刷题与题库管理平台
|
||||
echo (国内网络优化版)
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
REM 检查是否在项目目录
|
||||
if not exist "docker-compose.yml" (
|
||||
echo [错误] 请在项目根目录运行此脚本!
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM 检查 .env 文件
|
||||
if not exist ".env" (
|
||||
echo [警告] .env 文件不存在,正在从模板创建...
|
||||
copy .env.example .env >nul
|
||||
echo [完成] 已创建 .env 文件,请编辑后重新运行此脚本
|
||||
notepad .env
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo [1/5] 检查 Docker Desktop...
|
||||
docker info >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo [错误] Docker Desktop 未运行!
|
||||
echo.
|
||||
echo 请先启动 Docker Desktop,然后按任意键继续...
|
||||
pause >nul
|
||||
|
||||
REM 再次检查
|
||||
docker info >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo [错误] Docker Desktop 启动失败!
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
echo [完成] Docker Desktop 运行正常
|
||||
echo.
|
||||
|
||||
echo [2/5] 检查镜像加速器配置...
|
||||
docker info | findstr "Registry Mirrors" >nul
|
||||
if %errorlevel% neq 0 (
|
||||
echo [警告] 未检测到镜像加速器配置
|
||||
echo.
|
||||
echo 强烈建议配置镜像加速器以提高下载速度!
|
||||
echo.
|
||||
choice /C YN /M "是否现在配置镜像加速器"
|
||||
if %errorlevel% equ 1 (
|
||||
echo.
|
||||
echo 请按照提示配置 Docker Desktop 镜像加速器...
|
||||
call setup_docker_mirror.bat
|
||||
echo.
|
||||
echo 配置完成后,请重新运行此脚本
|
||||
pause
|
||||
exit /b 0
|
||||
)
|
||||
) else (
|
||||
echo [完成] 已配置镜像加速器
|
||||
)
|
||||
echo.
|
||||
|
||||
echo [3/5] 停止旧容器...
|
||||
docker-compose down >nul 2>&1
|
||||
echo [完成]
|
||||
echo.
|
||||
|
||||
echo [4/5] 启动服务(首次启动需要几分钟)...
|
||||
echo.
|
||||
echo [提示] 如果下载镜像失败,请:
|
||||
echo 1. 配置镜像加速器(运行 setup_docker_mirror.bat)
|
||||
echo 2. 或使用备用启动方式(见下方提示)
|
||||
echo.
|
||||
|
||||
docker-compose up -d
|
||||
if %errorlevel% neq 0 (
|
||||
echo.
|
||||
echo [错误] 服务启动失败!
|
||||
echo.
|
||||
echo 可能的原因:
|
||||
echo 1. 网络问题 - 无法下载 Docker 镜像
|
||||
echo 2. 端口被占用 - 3000/8000/5432 端口已被使用
|
||||
echo 3. 配置错误 - 检查 .env 文件
|
||||
echo.
|
||||
echo 解决方案:
|
||||
echo 1. 配置镜像加速器: 运行 setup_docker_mirror.bat
|
||||
echo 2. 查看详细错误: docker-compose logs
|
||||
echo 3. 阅读文档: DOCKER_MIRROR_SETUP.md
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo [完成] 服务启动成功
|
||||
echo.
|
||||
|
||||
echo [5/5] 等待服务就绪...
|
||||
timeout /t 8 /nobreak >nul
|
||||
echo.
|
||||
|
||||
echo ==========================================
|
||||
echo 服务已启动!
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo 前端地址: http://localhost:3000
|
||||
echo 后端地址: http://localhost:8000
|
||||
echo API 文档: http://localhost:8000/docs
|
||||
echo.
|
||||
echo 默认账户:
|
||||
echo 用户名: admin
|
||||
echo 密码: admin123
|
||||
echo.
|
||||
echo 镜像加速: 已配置国内镜像源
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
REM 询问是否打开浏览器
|
||||
choice /C YN /M "是否打开浏览器"
|
||||
if %errorlevel% equ 1 (
|
||||
start http://localhost:3000
|
||||
)
|
||||
|
||||
echo.
|
||||
echo 按任意键查看日志(Ctrl+C 退出日志查看)...
|
||||
pause >nul
|
||||
docker-compose logs -f
|
||||
Reference in New Issue
Block a user