本笔记记录了如何使用 Docker 容器化地安装 MySQL 数据库服务。它遵循 Docker 部署关系型数据库策略 中描述的通用原则,并详细说明了 MySQL 特有的配置和最佳实践。
为什么选择 Docker 安装 MySQL?
-
核心部署原则 中阐述的通用优势。
-
MySQL 特有优势: 广泛应用于 Web 开发、性能优异、社区支持广泛等。
核心部署策略:使用 Docker Compose
遵循 Docker Compose 的使用方法,以下是 MySQL 的典型配置。
docker-compose.yml 示例
services:
db:
image: mysql
deploy:
restart_policy:
condition: always
delay: 5s
window: 60s
container_name: mysql8
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: Mysql12#$
MYSQL_DATABASE: n8n
volumes:
- /etc/localtime:/etc/localtime:ro # 保持容器时间与宿主机一致
- /etc/timezone:/etc/timezone:ro # 保持容器时间与宿主机一致
- /fs/1000/ftp/docker/mysql/data:/var/lib/mysql
如何运行: 在包含上述 docker-compose.yml 文件的目录下,执行 docker compose up -d 命令。
关键配置解析(MySQL 特有/强调):
- 镜像选择 (
image: mysql:8.0): MySQL 官方镜像。 - 环境变量 (
environment): MySQL 容器启动时识别MYSQL_ROOT_PASSWORD,MYSQL_DATABASE,MYSQL_USER,MYSQL_PASSWORD这些变量初始化数据库。注意MYSQL_ROOT_PASSWORD是必需的。 - 数据持久化 (
volumes):/var/lib/mysql是 MySQL 存储数据的主目录,必须通过 Docker 卷 进行持久化。 - 端口映射 (
ports): MySQL 默认监听 3306 端口。
进一步考量(MySQL 特有):
- 配置优化: 可以挂载自定义
my.cnf文件进行性能调优。 - 日志: MySQL 的错误日志、慢查询日志等配置。