Docker Compose 部署 MySQL 用于开发调试
在开发过程中,使用 Docker Compose 部署 MySQL 可以快速启动并管理数据库服务,本文将介绍如何使用 Docker Compose 部署 MySQL 8.2.0,适用于本地开发和调试场景。
环境要求
- Docker 19.03 或更高版本
- Docker Compose 1.27.0 或更高版本
Docker Compose 配置详解
以下是 docker-compose.yml
文件配置,用于启动一个 MySQL 容器,设置端口、环境变量、存储挂载和网络配置。
docker-compose.yml
services:
mysql:
image: mysql:8.2.0
restart: always
mem_limit: 1G
ports:
- "13306:3306"
container_name: mysql
hostname: mysql
environment:
- MYSQL_ROOT_PASSWORD=_admin123
- TZ=Asia/Shanghai
networks:
- custom
volumes:
- ./storage:/var/lib/mysql
networks:
custom:
external: true
driver: bridge
配置说明
-
镜像与容器:
- 使用 MySQL 8.2.0 官方镜像。
container_name
设置为mysql
,便于管理。hostname
设置为mysql
,用于容器内的主机名解析。
-
端口映射:
13306:3306
将主机的 13306 端口映射到容器的 3306 端口,3306 是 MySQL 的默认端口。你可以通过localhost:13306
连接到本地 MySQL 服务。
-
资源限制:
mem_limit: 1G
限制容器最大使用 1GB 内存,避免开发环境中资源耗尽。
-
网络配置:
- 使用名为
custom
的外部网络,并设置为bridge
模式,以确保容器能够与其他服务互通。
- 使用名为
-
环境变量:
MYSQL_ROOT_PASSWORD
用于设置 MySQL root 用户的密码,本文设置为_admin123
,请根据需要修改。TZ
设置时区为Asia/Shanghai
,确保数据库使用正确的本地时间。
-
挂载卷:
./storage:/var/lib/mysql
将本地目录./storage
挂载到容器内的/var/lib/mysql
,用于存储 MySQL 数据,确保数据库的数据持久化,即使容器重启也不会丢失数据。
启动 MySQL
确保你已经安装了 Docker 和 Docker Compose,并在项目根目录下创建了 docker-compose.yml
文件。
-
运行以下命令启动 MySQL 服务:
docker-compose up -d
-
启动完成后,可以通过以下命令查看容器状态:
docker-compose ps
输出示例:
Name Command State Ports ---------------------------------------------------------------------- mysql docker-entrypoint.sh mysqld Up 0.0.0.0:13306->3306/tcp
-
连接 MySQL 数据库:
你可以使用本地 MySQL 客户端或任何数据库管理工具,通过以下信息连接数据库:
- 主机名:
localhost
- 端口:
13306
- 用户名:
root
- 密码:
_admin123
- 主机名:
-
登录容器内部并使用 MySQL 客户端:
docker exec -it mysql mysql -uroot -p
输入设置的 root 密码
_admin123
,即可进入 MySQL 命令行。
常见问题
- 连接失败:请确保防火墙允许 13306 端口的访问,并确认容器正常启动。
- 存储卷权限问题:如果遇到数据卷权限错误,检查挂载的
./storage
目录是否存在并具有正确的读写权限。
总结
本文介绍了如何使用 Docker Compose 快速部署 MySQL 8.2.0 单节点数据库服务,适合在开发和调试中使用。通过合理配置端口、存储、环境变量和资源限制,可以满足本地数据库服务的需求。