一、案例2-mysql容器的数据挂载

1-1、需求

  1. 查看mysq|容器,判断是否有数据卷挂载
  2. 基于 宿主机目录实现MySQL数据目录、配置文件、初始化脚本的挂载(查阅官方镜像文档)

二、判断该容器是否有数据卷挂载

2-1、查看容器详情

nginx:还可以是容器id
docker inspect nginx

如图就可以看到数据挂载

在这里插入图片描述
查看mysql容器
这个不是我们创建的,自动生成的(是一个匿名卷,会带来一个问题:)
在这里插入图片描述

三、基于宿主机目录实现mysql数据挂载

  1. 基于 宿主机目录实现MySQL数据目录、配置文件、初始化脚本的挂载(查阅官方镜像文档)

如何去实现?
●在执行docker run命令时,使用-v 本地目录 : 容器内目录 可以完成本地目录挂载
●本地目录必须以" / “或” ./ "开头,如果直接以名称开头,会被识别为数据卷而非本地目录
● -v mysql : /var/lib/mysql 会被识别为一个数据卷叫mysq|
●-v ./mysql : /var/ib/mysql 会被识别为当前目录下的mysq|目录

本地目录:就是宿主机目录
①挂载 /root/mysql/data 到容器内的 var/lib/mysqI 目录
②挂载 /root/mysql/init 到容器内的 /docker-entrypoint-lnitdb.d 目录, 携带课前资料准备的SQL脚本
③挂载 /root/mysq/conf 到容器内的 /etc/mysql/conf.d 目录,携带课前资料准备的配置文件

3-1、宿主机准备好目录

在这里插入图片描述

3-2、使用xftp传入两个文件

在这里插入图片描述
hm.cnf 内容 另一个是一个数据库可以不用管

[client]
default_character_set=utf8mb4
[mysql]
default_character_set=utf8mb4
[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
show variables like '%char%'

在这里插入图片描述

3-2、如果有mysql,但未挂载,则删除原有的

删除容器

docker rm -f 08f1b019ef22

在这里插入图片描述

3-3、创建运行并挂载

(记得一定要在root目录跑上面命令)

docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /root/mysql/data:/var/lib/mysql \
-v /root/mysql/init:/docker-entrypoint-initdb.d \
-v /root/mysql/conf:/etc/mysql/conf.d \
mysql:5.7

如果创建错误就删掉重新创建
在这里插入图片描述
测试是否成功,刷新以下看是否报错:
在这里插入图片描述
在这里插入图片描述

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部