# Local Docker Environment 本地开发环境的 Docker 配置,包含 MySQL、Redis 和 Nginx。 ## 📦 服务组成 ### MySQL 8.0 - **端口**: 3306 - ** root 密码**: `root` - **普通用户**: `docker` / `docker` - **配置特点**: - 关闭严格模式 (`--sql-mode=`) - InnoDB 缓冲池: 2GB - 最大连接数: 1000 - 最大数据包: 1GB - 时区: +08:00 (北京时间) - 跳过 DNS 反向解析 ### Redis 7 - **端口**: 6379 - **持久化**: AOF 启用 - **内存**: 无限制 ### Nginx - **端口**: 80 - **配置目录**: `nginx/conf.d/` - **日志目录**: `nginx/logs/` ## 🚀 快速开始 ### 启动所有服务 ```bash # 启动 MySQL cd mysql && docker-compose up -d # 启动 Redis cd redis && docker-compose up -d # 启动 Nginx cd nginx && docker-compose up -d ``` ### 停止服务 ```bash docker-compose down ``` ### 查看日志 ```bash docker-compose logs -f ``` ## 📁 目录结构 ``` localdocker/ ├── mysql/ │ ├── data/ # MySQL 数据目录(已忽略) │ ├── init/ # 初始化脚本目录 │ │ └── 01-create-databases.sql # 数据库创建脚本 │ └── docker-compose.yml ├── redis/ │ ├── data/ # Redis 数据目录(已忽略) │ └── docker-compose.yml ├── nginx/ │ ├── conf.d/ # Nginx 配置目录(已忽略) │ ├── html/ # Nginx HTML 目录(已忽略) │ ├── logs/ # Nginx 日志目录(已忽略) │ └── docker-compose.yml └── .gitignore ``` ## 💾 数据库 自动创建的数据库: - `project-management-platform` - `smart_data_hub` - `uiap` ## ⚙️ 配置说明 ### MySQL 配置 ```yaml command: ["--sql-mode=", "--skip-name-resolve", "--innodb-buffer-pool-size=2G", "--max-connections=1000", "--max-allowed-packet=1073741824", "--default-time-zone=+08:00"] ``` ### 重启策略 所有服务都配置了 `restart: always`,系统重启后会自动启动。 ## 🔧 常用命令 ### MySQL ```bash # 进入 MySQL 容器 docker exec -it mysql mysql -uroot -proot # 查看数据库 docker exec -i mysql mysql -uroot -proot -e "SHOW DATABASES;" # 查看配置 docker exec -i mysql mysql -uroot -proot -e "SHOW VARIABLES LIKE 'max_allowed_packet';" ``` ### Redis ```bash # 进入 Redis 容器 docker exec -it redis redis-cli # 查看 Redis 信息 docker exec -it redis redis-cli info ``` ### 重置 MySQL 数据 ```bash cd mysql docker-compose down rm -rf data/* docker-compose up -d ``` ## 📝 注意事项 1. **数据持久化**: `data/` 目录已添加到 `.gitignore`,不会被提交到版本控制 2. **首次启动**: MySQL 会自动执行 `init/` 目录下的 SQL 脚本 3. **连接方式**: 使用 `127.0.0.1` 而不是 `localhost` 避免 socket 连接问题 4. **内存配置**: MySQL 和 Redis 都不限制内存使用,请确保主机有足够内存 ## 🔐 安全提示 - 生产环境请修改默认密码 - 建议使用 HTTPS 而非 HTTP - 定期备份重要数据 ## 📄 License MIT