Docker教程:MySQL容器化部署全流程详解

容器化部署MySQL能实现环境隔离、快速迁移和版本控制。本教程将分步骤指导您完成全流程部署,所有命令均通过终端执行。


步骤1:安装Docker环境

若未安装Docker,请根据操作系统执行以下命令:

# Linux系统(Ubuntu示例)  
sudo apt update  
sudo apt install docker.io  
sudo systemctl start docker  
sudo systemctl enable docker  

# macOS/Windows  
# 从官网下载Docker Desktop并安装  

验证安装:docker --version


步骤2:拉取MySQL镜像

从Docker Hub获取官方镜像(以MySQL 8.0为例):

docker pull mysql:8.0  

注:如需其他版本(如mysql:5.7),替换标签即可。


步骤3:启动MySQL容器

关键参数说明:

  • -e MYSQL_ROOT_PASSWORD:设置root密码(必填)
  • -v:挂载数据卷实现持久化
  • --name:自定义容器名
docker run -d \  
  --name mysql-server \  
  -e MYSQL_ROOT_PASSWORD=my-secret-pw \  
  -v /host/path:/var/lib/mysql \  
  -p 3306:3306 \  
  mysql:8.0  

参数解析:

  • -d:后台运行
  • -p 3306:3306:主机端口映射到容器端口
  • -v:将主机目录/host/path绑定到容器数据目录

步骤4:连接MySQL数据库

方式1:容器内命令行连接

docker exec -it mysql-server mysql -uroot -p  
# 输入密码 my-secret-pw  

方式2:外部工具连接
使用MySQL客户端(如DBeaver、Navicat)配置:

  • 主机: localhost
  • 端口: 3306
  • 用户名: root
  • 密码: my-secret-pw

步骤5:数据持久化验证
  1. 在容器内创建测试数据库:
CREATE DATABASE test_db;  

  1. 停止并删除容器:
docker stop mysql-server  
docker rm mysql-server  

  1. 重新启动容器(使用相同卷挂载):
docker run ... -v /host/path:/var/lib/mysql ...  

  1. 重新连接后执行:
SHOW DATABASES;  # 应显示test_db存在  


步骤6:常用管理命令
操作命令
查看运行中的容器docker ps
停止容器docker stop mysql-server
启动已停止的容器docker start mysql-server
查看容器日志docker logs mysql-server
删除容器docker rm mysql-server

故障排除
  • 端口冲突:修改-p参数(如-p 3307:3306
  • 权限错误:主机挂载目录需开放权限(chmod 777 /host/path
  • 忘记root密码
    1. 启动临时容器:docker run -it --rm mysql:8.0 mysql --user=root --skip-password
    2. 执行:ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-password';

进阶配置

自定义配置文件

  1. my.cnf放在主机目录(如/host/config
  2. 启动时添加挂载:-v /host/config:/etc/mysql/conf.d

多容器协作
通过Docker Network实现容器间通信:

docker network create my-network  
docker run -d --network my-network --name mysql-server ...  

其他容器使用--network my-network即可通过mysql-server主机名访问数据库。

完成部署后,您已获得一个隔离、可移植且数据持久的MySQL服务!

更多推荐