139 lines
3.0 KiB
Markdown
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
|