【Docker 学习七】docker实战Mysql挂载

【Docker 学习七】docker实战Mysql挂载
鱼六秒实战Mysql
思考:MySQL的数据持久化的问题
MySQL安装
- 拉取最新的
mysql镜像1
docker pull mysql
- 镜像查看
1
2
3
4#查看镜像
docker images
# REPOSITORY TAG IMAGE ID CREATED SIZE
# mysql latest c138801544a9 2 months ago 577MB
创建MySQL容器
创建本地
MySQL映射目录1
2
3# 使用 -p 参数 表示 创建多级目录
# 主要data(数据文件), logs(日志文件),conf(配置文件)
mkdir -p /home/mysql01/data /home/mysql01/logs /home/mysql01/conf创建容器并挂载目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14# -d 后台运行
# -p 端口映射
# -v 卷挂载
# -e 环境配置
# -name 容器名称
docker run --name mysql001 \
-p 3310:3306 \
-v /home/mysql01/data:/var/lib/mysql \
-v /home/mysql01/conf:/etc/mysql/conf.d \
-v /home/mysql01/logs:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_general_ci
参数说明:
| 参数 | 描述 | 是否可选 |
|---|---|---|
| -p 3310:3306 | 将容器的3306端口映射到宿主机的3310端口 |
必选 |
| -v /home/mysql10/data:/var/lib/mysql | 将数据文件夹挂载到主机 | 必选 |
| -v /home/mysql01/conf:/etc/mysql/conf.d | 将配置文件夹挂在到主机 | 必选 |
| -v /home/mysql01/logs:/var/log/mysql | 将日志文件夹挂在到主机 | 必选 |
| -e MYSQL_ROOT_PASSWORD=123456 | 初始化123456用户的密码 |
必选 |
| –name mysql001 | 设置容器名称 | 可选 |
| -d mysql | 后台运行镜像名称或者ID | 可选 |
| –character-set-server=utf8mb4 | 设置字符集 | 可选 |
| –collation-server=utf8mb4_general_ci | 排序方式 | 可选 |
进入
MySQL容器内部1
docker exec -it mysql001 /bin/bash
登录
MySQL1
2mysql -uroot -p123456
# mysql>查看字符集是否生效
1
2
3
4
5
6
7
8
9
10
11
12
13
14show variables like 'character_set_%';
# +--------------------------+--------------------------------+
# | Variable_name | Value |
# +--------------------------+--------------------------------+
# | character_set_client | latin1 |
# | character_set_connection | latin1 |
# | character_set_database | utf8mb4 |
# | character_set_filesystem | binary |
# | character_set_results | latin1 |
# | character_set_server | utf8mb4 |
# | character_set_system | utf8mb3 |
# | character_sets_dir | /usr/share/mysql-8.1/charsets/ |
# +--------------------------+--------------------------------+
# 8 rows in set (0.01 sec)
挂载是否生效
方法一、
- 停止并删除容器
1 | docker stop mysql001 && docker rm mysql001 |
- 查看宿主机数据存在
1
2
3
4
5
6[root@yulium data]# cd /home/mysql01/data/
[root@yulium data]# ls
# auto.cnf binlog.index client-cert.pem #ib_16384_1.dblwr #innodb_redo mysql.ibd private_key.pem server-key.pem undo_002
# binlog.000001 ca-key.pem client-key.pem ib_buffer_pool #innodb_temp mysql.sock public_key.pem sys
# binlog.000002 ca.pem #ib_16384_0.dblwr ibdata1 mysql performance_schema server-cert.pem undo_001
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果
