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-platform
  • smart_data_hub
  • uiap

⚙️ 配置说明

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

📝 注意事项

  1. 数据持久化: data/ 目录已添加到 .gitignore,不会被提交到版本控制
  2. 首次启动: MySQL 会自动执行 init/ 目录下的 SQL 脚本
  3. 连接方式: 使用 127.0.0.1 而不是 localhost 避免 socket 连接问题
  4. 内存配置: MySQL 和 Redis 都不限制内存使用,请确保主机有足够内存

🔐 安全提示

  • 生产环境请修改默认密码
  • 建议使用 HTTPS 而非 HTTP
  • 定期备份重要数据

📄 License

MIT

S
Description
No description provided
Readme 30 KiB