202 lines
3.9 KiB
Markdown
202 lines
3.9 KiB
Markdown
# 🚀 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` |