本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • Docker
  • Docker运维教程(3)volume数据卷的配置

Docker运维教程(3)volume数据卷的配置

发布:TangLu2019-2-20 17:02分类: Docker 标签: docker

一、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、进入容器查看根目录可以看到已经多了一个数据目录


dockerdata1.png


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

docker volume ls  #查看当前所有的volume
docker volume inspect my_volume1  #查看my_volume1的信息



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

dockerdata2.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  #从其他容器中挂载


温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《Docker运维教程(3)volume数据卷的配置
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-380.html  [生成短网址]

已有 0/5324 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~