Docker教程:MySQL容器化部署全流程详解
·
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:数据持久化验证
- 在容器内创建测试数据库:
CREATE DATABASE test_db;
- 停止并删除容器:
docker stop mysql-server
docker rm mysql-server
- 重新启动容器(使用相同卷挂载):
docker run ... -v /host/path:/var/lib/mysql ...
- 重新连接后执行:
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密码:
- 启动临时容器:
docker run -it --rm mysql:8.0 mysql --user=root --skip-password - 执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-password';
- 启动临时容器:
进阶配置
自定义配置文件:
- 将
my.cnf放在主机目录(如/host/config) - 启动时添加挂载:
-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服务!
更多推荐
所有评论(0)