Files
rtsp-video-analysis-system/DOCKER-QUICK-START.md

202 lines
3.9 KiB
Markdown
Raw Normal View History

2025-09-30 14:23:33 +08:00
# 🚀 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`