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:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:15-alpine
|
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