# 🚀 Docker快速启动指南 ## 一键部署 ### Windows ```bash deploy.bat ``` ### Linux/Mac ```bash chmod +x deploy.sh ./deploy.sh ``` ## 手动部署 ```bash # 1. 启动所有服务 docker-compose up -d # 2. 查看服务状态 docker-compose ps # 3. 查看日志 docker-compose logs -f ``` ## 常用命令 ### 服务管理 ```bash # 启动服务 docker-compose up -d # 停止服务 docker-compose stop # 重启服务 docker-compose restart # 停止并删除容器 docker-compose down # 停止并删除容器和数据卷 docker-compose down -v ``` ### 日志查看 ```bash # 查看所有日志 docker-compose logs # 查看特定服务日志 docker-compose logs backend docker-compose logs frontend docker-compose logs python-service # 实时查看日志 docker-compose logs -f # 查看最近100行日志 docker-compose logs --tail=100 ``` ### 服务重建 ```bash # 重新构建所有镜像 docker-compose build # 重新构建特定服务 docker-compose build backend # 强制重建并启动 docker-compose up -d --build --force-recreate ``` ### 进入容器 ```bash # 进入后端容器 docker exec -it rtsp-backend sh # 进入前端容器 docker exec -it rtsp-frontend sh # 进入Python服务容器 docker exec -it rtsp-python-service bash # 进入MySQL容器 docker exec -it rtsp-mysql bash # 进入Redis容器 docker exec -it rtsp-redis sh ``` ## 端口配置 | 服务 | 默认端口 | 对外暴露 | 说明 | |------|---------|---------|------| | 前端 | 10080 | ✅ | 唯一对外暴露的端口 | | 后端 | 8080 | ❌ | 仅容器内部访问 | | Python服务 | 8000 | ❌ | 仅容器内部访问(CPU模式) | | MySQL | 3306 | ❌ | 仅容器内部访问 | | Redis | 6379 | ❌ | 仅容器内部访问 | | MinIO | 外部服务 | - | 使用已部署的外部服务 | 要修改前端端口,编辑 `.env` 文件中的 `FRONTEND_PORT` 变量。 ## 环境变量配置 所有配置都在 `.env` 文件中: ```bash # 修改前端端口 FRONTEND_PORT=8080 # 修改数据库密码 MYSQL_ROOT_PASSWORD=your_secure_password MYSQL_PASSWORD=your_secure_password # 修改MinIO密码 MINIO_ROOT_PASSWORD=your_secure_password ``` 修改后需要重新启动服务: ```bash docker-compose down docker-compose up -d ``` ## 数据备份 ### 备份MySQL数据 ```bash docker exec rtsp-mysql mysqldump -u root -pruoyi123 ry-vue > backup.sql ``` ### 备份MinIO数据 ```bash docker cp rtsp-minio:/data ./minio-backup ``` ### 恢复MySQL数据 ```bash docker exec -i rtsp-mysql mysql -u root -pruoyi123 ry-vue < backup.sql ``` ## 故障排查 ### 查看服务健康状态 ```bash docker-compose ps ``` ### 服务启动失败 ```bash # 查看详细日志 docker-compose logs [服务名] # 常见问题: # 1. 端口被占用 -> 修改.env中的端口配置 # 2. 数据库连接失败 -> 等待MySQL完全启动(约30秒) # 3. 内存不足 -> 增加Docker内存限制或减少服务 ``` ### 清理并重新开始 ```bash # 完全清理(会删除所有数据) docker-compose down -v docker system prune -a # 重新部署 docker-compose up -d ``` ## 访问地址 部署成功后: - **前端界面**: http://localhost:10080 - **后端API**: 通过前端代理 `/prod-api/` - **Python API**: 通过前端代理 `/python-api/` - **API文档**: http://localhost:10080/prod-api/swagger-ui.html ## 首次使用 1. **准备YOLOv8模型**:将训练好的`best.pt`文件放到`python-inference-service/models/`目录 2. 访问 http://localhost:10080 3. 默认账号密码请参考主文档 4. 首次启动可能需要等待1-2分钟让所有服务完全启动 ## YOLOv8模型说明 本系统使用**YOLOv8**(Ultralytics)进行目标检测: - 将训练好的YOLOv8模型(`best.pt`)放到`python-inference-service/models/`目录 - (可选)创建`classes.txt`文件,每行一个类别名称 - 模型会自动加载并提供推理服务 ## 更多帮助 详细文档请查看:`README-DOCKER.md`