# Docker 部署指南 ## 快速开始 ### 方式一:一键启动全部服务(推荐) **Windows:** ```bash start-docker.bat ``` **Linux/Mac:** ```bash chmod +x start-docker.sh ./start-docker.sh ``` 启动后会自动: 1. 构建 Docker 镜像 2. 启动 PostgreSQL 数据库 3. 启动 Redis 4. 启动行情数据服务 5. 自动创建数据库表 ### 方式二:只启动数据库(本地开发) 如果你只想用 Docker 启动数据库,然后在本地运行 Python 服务: ```bash start-db-only.bat ``` 然后在本地启动服务: ```bash python -m app.main ``` ## 访问服务 启动成功后,可以通过以下地址访问: | 服务 | 地址 | |------|------| | 行情数据服务 | http://localhost:8080 | | 管理后台 | http://localhost:8080/admin | | API 文档 (Swagger) | http://localhost:8080/docs | | API 文档 (ReDoc) | http://localhost:8080/redoc | ## 数据库连接 ``` 主机: localhost 端口: 5432 数据库: marketdata 用户名: postgres 密码: postgres123 ``` 连接字符串: ``` postgresql://postgres:postgres123@localhost:5432/marketdata ``` ## 常用命令 ```bash # 查看日志 docker compose logs -f # 停止服务 docker compose down # 停止并删除数据卷(清空数据) docker compose down -v # 重启服务 docker compose restart # 进入数据库容器 docker exec -it market_data_postgres psql -U postgres -d marketdata ``` ## 数据结构 启动时会自动创建以下表: ### 股票相关表 - `stock_symbols` - 股票标的表 - `stock_trading_calendar` - 股票交易日历 - `stock_klines_1m` - 股票1分钟K线 - `stock_klines_5m` - 股票5分钟K线 - `stock_klines_1d` - 股票日线K线 ### 期货相关表 - `futures_symbols` - 期货合约表 - `futures_trading_calendar` - 期货交易日历 - `futures_klines_1m` - 期货1分钟K线 - `futures_klines_1d` - 期货日线K线 ### 公共表 - `data_source_config` - 数据源配置 - `data_quality_checks` - 数据质量检查 ## 故障排查 ### 端口冲突 如果 5432 或 8080 端口被占用,修改 `docker-compose.yml` 中的端口映射: ```yaml ports: - "5433:5432" # 使用 5433 代替 5432 ``` ### 数据库连接失败 1. 检查容器是否运行: ```bash docker ps ``` 2. 查看数据库日志: ```bash docker logs market_data_postgres ``` 3. 检查数据库是否就绪: ```bash docker exec -it market_data_postgres pg_isready -U postgres ``` ### 数据持久化 数据默认存储在 Docker 卷中: - `postgres_data` - PostgreSQL 数据 - `redis_data` - Redis 数据 即使删除容器,数据也不会丢失。要清空数据: ```bash docker compose down -v ```