Files
localdocker/README.md
T
2026-04-27 21:22:24 +08:00

139 lines
3.0 KiB
Markdown

# 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