main
…
…
…
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/
🚀 快速开始
启动所有服务
# 启动 MySQL
cd mysql && docker-compose up -d
# 启动 Redis
cd redis && docker-compose up -d
# 启动 Nginx
cd nginx && docker-compose up -d
停止服务
docker-compose down
查看日志
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-platformsmart_data_hubuiap
⚙️ 配置说明
MySQL 配置
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
# 进入 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
# 进入 Redis 容器
docker exec -it redis redis-cli
# 查看 Redis 信息
docker exec -it redis redis-cli info
重置 MySQL 数据
cd mysql
docker-compose down
rm -rf data/*
docker-compose up -d
📝 注意事项
- 数据持久化:
data/目录已添加到.gitignore,不会被提交到版本控制 - 首次启动: MySQL 会自动执行
init/目录下的 SQL 脚本 - 连接方式: 使用
127.0.0.1而不是localhost避免 socket 连接问题 - 内存配置: MySQL 和 Redis 都不限制内存使用,请确保主机有足够内存
🔐 安全提示
- 生产环境请修改默认密码
- 建议使用 HTTPS 而非 HTTP
- 定期备份重要数据
📄 License
MIT
Description