Files
sanguo_vnpy_v2/docs/deployment/docker-deployment.md
T
claude_dev 918bbed0fc fix: 修复登录500错误和移除明文密码提示
- 修复 deps.py 中 get_vn_service 的引用错误 (vn_service.vn_service -> vn_service)
- 移除登录页面上的明文密码提示
- 改进前端错误处理,避免数据加载失败导致登录显示错误
2026-07-02 12:23:55 +08:00

6.1 KiB

Docker 部署指南

本指南介绍如何使用 Docker Compose 部署 Sanguo VeighNa 量化交易平台。

目录


前置要求

系统要求

  • 操作系统: Linux, macOS, Windows (with WSL2)
  • Docker: 20.10+
  • Docker Compose: 2.0+
  • 内存: 至少 2GB 可用内存
  • 存储: 至少 10GB 可用存储空间

安装 Docker

Linux

# Ubuntu/Debian
curl -fsSL https://get.docker.com | bash
sudo usermod -aG docker $USER

# 启用 Docker Compose
sudo apt-get install docker-compose-plugin

macOS

下载并安装 Docker Desktop for Mac

Windows

下载并安装 Docker Desktop for Windows


快速开始

1. 克隆项目

git clone https://github.com/sanguo/sanguo_vnpy_v2.git
cd sanguo_vnpy_v2

2. 配置环境变量

cd docker
cp .env.example .env
vi .env  # 编辑配置

3. 启动服务

docker-compose up -d

4. 查看状态

docker-compose ps
docker-compose logs -f

配置说明

环境变量

编辑 .env 文件配置以下参数:

# 数据目录
DATA_DIR=./data

# 端口配置
HTTP_PORT=8000
WS_PORT=8080

# 时区
TZ=Asia/Shanghai

# 日志级别
VNPY_LOG_LEVEL=INFO

# 数据库配置
DB_TYPE=sqlite
DB_PATH=/app/data/vnpy.db

# Web 服务配置
WEB_HOST=0.0.0.0
WEB_PORT=8000
WEB_WORKERS=2

# 安全配置
JWT_SECRET_KEY=your-secret-key-here
SESSION_TIMEOUT=3600

目录映射

默认目录映射:

容器路径 宿主机路径 说明
/app/data {DATA_DIR}/data 数据库和数据文件
/app/logs {DATA_DIR}/logs 运行日志
/app/config {DATA_DIR}/config 配置文件
/app/temp {DATA_DIR}/temp 临时文件

启动服务

基本命令

# 启动所有服务
docker-compose up -d

# 仅启动核心服务
docker-compose up -d vnpy redis

# 启动并包含 Nginx
docker-compose --profile nginx up -d

# 启动并包含 PostgreSQL
docker-compose --profile postgres up -d

查看状态

# 查看容器状态
docker-compose ps

# 查看日志
docker-compose logs -f vnpy

# 查看所有服务日志
docker-compose logs -f

停止服务

# 停止服务
docker-compose down

# 停止并删除数据卷
docker-compose down -v

重启服务

# 重启所有服务
docker-compose restart

# 重启特定服务
docker-compose restart vnpy

进入容器

# 进入 VeighNa 容器
docker-compose exec vnpy bash

# 进入 Redis 容器
docker-compose exec redis sh

访问界面

Web 界面

启动成功后,访问:

http://localhost:8000

默认登录

  • 用户名: admin
  • 密码: admin123

WebSocket 端点

ws://localhost:8080

数据管理

数据备份

# 备份数据目录
tar czf vnpy_backup_$(date +%Y%m%d).tar.gz ./data

# 恢复数据
tar xzf vnpy_backup_YYYYMMDD.tar.gz

数据库操作

SQLite

# 进入容器
docker-compose exec vnpy bash

# 访问数据库
sqlite3 /app/data/vnpy.db

# 常用命令
.tables          # 列出所有表
.schema          # 查看表结构
.quit            # 退出

PostgreSQL

# 进入 PostgreSQL 容器
docker-compose exec postgres psql -U vnpy -d vnpy

# 常用命令
\l               # 列出所有数据库
\dt              # 列出所有表
\q               # 退出

生产部署

使用 Nginx 反向代理

# 启用 Nginx
docker-compose --profile nginx up -d

配置 HTTPS

  1. 获取 SSL 证书
# 使用 Let's Encrypt
mkdir -p data/nginx/ssl
# 将证书文件复制到该目录
cp cert.pem data/nginx/ssl/
cp key.pem data/nginx/ssl/
  1. 更新 nginx 配置

  2. 重启服务

docker-compose restart nginx

资源限制

.env 文件中配置:

VNPY_CPU_LIMIT=2.0
VNPY_MEMORY_LIMIT=2G
WEB_WORKERS=4

安全建议

  1. 修改默认密码
  2. 使用强 JWT 密钥
  3. 启用 HTTPS
  4. 配置防火墙
  5. 定期备份
  6. 监控日志

常见问题

端口冲突

如果端口被占用,修改 .env 中的端口配置:

HTTP_PORT=8001
WS_PORT=8081

权限问题

# 修复数据目录权限
sudo chown -R $USER:$USER ./data
sudo chmod -R 755 ./data

容器无法启动

# 查看详细日志
docker-compose logs vnpy

# 重新构建
docker-compose up -d --build

数据丢失

确保使用绑定挂载而非命名卷:

volumes:
  - ./data:/app/data

高级配置

使用 PostgreSQL

# 启用 PostgreSQL
export USE_POSTGRES=1
docker-compose --profile postgres up -d

自定义配置

# 挂载自定义配置
mkdir -p config
cp your_config.yaml config/

多实例部署

# 修改端口和数据目录
docker-compose -f docker-compose.yml -p vnpy2 up -d

附录

Docker Compose 命令参考

命令 说明
up -d 后台启动服务
down 停止并删除容器
ps 查看服务状态
logs 查看日志
exec 在容器中执行命令
restart 重启服务
build 重新构建镜像

目录结构

sanguo_vnpy_v2/
├── docker/
│   ├── .env                 # 环境变量配置
│   ├── .env.example         # 配置示例
│   ├── docker-compose.yml   # 编排配置
│   ├── Dockerfile           # 镜像构建
│   ├── entrypoint.sh        # 启动脚本
│   └── nginx/               # Nginx 配置
├── data/                    # 数据目录
├── logs/                    # 日志目录
└── docs/                    # 文档

最后更新: 2026-07-01 文档版本: 1.0.0