docker mysql data volume_Docker运维教程(3)volume数据卷的配置

一、Docker数据卷的作用

Docker容器在进行重启或者关闭时对容器内的数据没什么影响的,但是一旦容器被删除,那其中数据则会全部删掉。这对于需要将数据持久化的场景是不合适的,比如数据库、WEB页面等。而使用volume数据卷就可以将数据通过存储卷(data volume)存到本地硬盘或者使用其他的网络存储进行挂载,实现容器数据的持久化。

二、Docker volume使用方法

1、在启动容器时使用-v选项来指定宿主机存储卷的路径与容器挂载点的路径,如果宿主机不存在该目录也会自动创建,该选项还支持读写权限的设置,如果在挂载的时候没有写宿主机的路径,则会由Docker自定创建一个目录进行挂载,通过docker inspect的Mounts信息可以看到具体路径。一个容器可以有多个存储卷,一个存储卷也可以挂载给多个容器。

#方法1:使用-v选项创建volume

docker run -it --name centos7_d1 -v /docker_data:/data centos:latest #将宿主机/docker_data目录挂载到容器/data中

docker run -it --name centos7_d2 -v /docker_data:/data centos:latest:ro #挂载后设置只读权限

#方法2:使用docker volume命令创建

docker volume create

2、进入容器查看根目录可以看到已经多了一个数据目录

50dfcf694ffb31cf92c4e0d0cb8175ad.png

3、查询volume在宿主机中的真实路径

docker volume ls #查看当前所有的volume

docker volume inspect my_volume1 #查看my_volume1的信息

4、在容器数据目录里创建的文件都会在宿主机的目录里出现,同理在宿主机目录里创建的文件,在容器中也可以看到。即使关闭了容器数据也不会消失。如果创建文件时提示没有权限,记得关闭SELINUX

91ad3af41349962775dc2350ccd3b53d.png

三、使用数据卷实现跨容器共享(数据卷容器)

当A容器运行MySQL并生成了数据后,让B容器也运行同样的服务,并且使用A容器的volume实现数据共享

docker run -it -v /dbdata --name dbdata centos:latest

docker run -it -v /dbdata --volumes-from dbdata --name db1 centos:latest #从其他容器中挂载

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值