【Docker】docker数据卷的使用

目录

一、第一次启动mysql容器的命令

 二、数据卷的理解及使用

1、数据卷理解

2、数据卷的使用-mysql

 三、数据卷的挂载

1、匿名挂载

 2、具名挂载

 3、指定路径挂载

四、容器间数据共享-mysql

一、第一次启动mysql容器的命令

docker run --name mysql  --privileged=true --restart=always  -d \
-p 3306:3306   \
-v /root/docker/mysql/conf/my.cnf:/etc/mysql/conf.d/mysql.cnf   \
-v /root/docker/mysql/data:/var/lib/mysql   \
-e  MYSQL_ROOT_PASSWORD="123456" mysql:5.7

这个命令的-v 使用的就是数据卷的知识。-v 宿主机目录:容器目录,来达到宿主机和容器之间数据和配置文件的同步修改、增加、删除的同步;

至于容器中的配置文件和数据目录在哪个目录,需要参考官网提供的参考命令:mysql镜像

 二、数据卷的理解及使用

1、数据卷理解

(1)将宿主机中的某个目录映射到容器中的某个目录,在容器中对此映射目录的修改,即便容器关闭、删除,宿主机上映射目录的数据也会保留下来,可以供宿主机和其他容器访问。

(2)容器内新建、删除、修改文件,宿主机外部挂载的目录同步新建、删除、修改;容器删除,宿主机外部挂载的目录不会同步删除目录及里面的文件;

(3)由于容器中有时候会遇到没有vim、vi、ll等Linux命令,而又要修改容器的某个配置文件,使用容器下载安装这些命令有比较麻烦,故将容器目录挂载到宿主机,直接在宿主机修改,使其自动同步到容器即可;

(4)数据卷是一个可供容器使用的特殊目录,它绕过文件系统,可以提供很多有用的特性:

  • 数据卷可以在容器之间共享和重用;
  • 对数据卷的修改会立马生效;
  • 对数据卷的更新,不会影响镜像;
  • 卷会一直存在,直到没有容器使用;

2、数据卷的使用-mysql

在开头mysql容器运行的前提下,分别进入宿主机的/root/docker/mysql/data目录下和mysql容器的/var/lib/mysql目录下:

 以上宿主机目录和容器目录数据完全一样;

 现在在容器目录新增一个文件test.txt,观察宿主目录变化:

 容器向test.txt追加“wwww”,观察宿主机的变化:

root@564e72c5f688:/var/lib/mysql# echo "wwww" >> test.txt 
[root@docker data]# cat test.txt 
wwww

容器删除test.txt,观察宿主机的变化:

 宿主机增加test01.txt,观察容器变化:

 宿主机向test01.txt追加数据,观察容器的变化:

 删除容器,观察宿主机目录的变化:

 三、数据卷的挂载

数据卷的挂载包括:匿名挂载,具名挂载 ,指定路径挂载;

1、匿名挂载

使用 -v 参数的时候,仅仅指定容器内部挂载路径,不指定外部挂载的卷;

# -v 后 未指定宿主机路径以及挂载名
docker run -d -v /data redis:5.0

 2、具名挂载

容器与宿主机进行挂载的时候指定一个名字;

#-v 参数后 指点挂载的卷名:/容器内路径
docker run -d -v path01:/data --name jmgz  redis:5.0

 查看卷所在宿主机位置:

docker volume inspect 卷名

如果未指定目录,都会挂载到默认目录/var/lib/docker/volumes/下; 

 3、指定路径挂载

在挂载的时候,宿主机目录和容器目录都要写;开头启动mysql容器就是使用的指定路径挂载;

四、容器间数据共享-mysql

容器之间数据共享,使用数据卷挂载命令:--volumes-from 要挂载容器ID,但是必须一个容器启动,不能共同启动使用。

docker run -d -p 3310:3306 -v /etc/mysql/conf.d  -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456  --name mysql01 mysql:5.7
docker run -d -p 3311:3306 --volumes-from mysql01  -e MYSQL_ROOT_PASSWORD=123456  --name mysql02 mysql:5.7

在mysql01新建一个mytest库,然后将mysql01容器停止,启动mysql02容器,里面也会有一个mytest库;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郝少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值