本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • Docker
  • Docker运维教程(3)通过存储卷实现容器数据持久化

Docker运维教程(3)通过存储卷实现容器数据持久化

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

Docker容器在进行重启或者关闭时数据是没任何影响的,但是容器被删除的话其中数据则会全部删掉。但是在开发环境中有时候会需要容器能够将数据进行保留,比如数据库、WEB页面等。为了实现这个需求就需要将数据通过存储卷(data volume)的形式存到本地硬盘或者使用其他的网络存储进行挂载,实现容器数据的持久化。

一、将Docker容器中的数据保存到宿主机本地

1、在本地建立一个目录用于Docker数据存放

mkdir /docker_data


2、运行Docker容器之前先指定好数据存储目录,用到的选项是-v /宿主目录:/容器目录。该选项可以把宿主机本地目录挂载到容器中指定目录去,也支持读写权限的设置。如果没有指定宿主机目录的话则会由Docker自行创建一个目录,通过docker inspect的Mounts信息可以看到具体路径。

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  #挂载后设置只读权限


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


dockerdata1.png


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

dockerdata2.png


二、使用数据卷实现跨容器共享

A容器运行MySQL并生成了数据后,让B容器也运行同样的服务,并且使用A容器的volume就可以看到A容器的数据

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)通过存储卷实现容器数据持久化
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-380.html  [生成短网址]

已有 0/1887 人参与

发表评论:

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

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