标签:docker 数据管理
数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:
1. 数据卷可以在容器之间共享和重用
2. 对数据卷的修改会立马生效
3. 对数据卷的更新,不会影响镜像
4. 卷会一直存在,直到没有容器使用
创建一个数据卷
在用 docker run 命令的时候,使用 -v 标记来创建一个数据卷并挂载到容器里。在一次 run 中多次使用可以挂载多个数据卷。
#sudo docker run -it -v ~/data:/data --namedv1 centos-sshd:v1 /bin/bash
-v是挂载项,家目录下的data目录挂载到容器的跟目录的data下 --name起一个名字
在data下创建一个叫a.txt的文件
如图,家目录的data文件下已经有我们创建的a.txt
使用dockerfile挂载
编辑dockerfile
如图成功挂载data0
权限的限制,在之前挂载目录下只需要加上ro就可以变成只读权限了,如图
#sudo docker run -it -v ~/data:/data:ro--name dv0 centos-sshd:v1 /bin/bash
使用#sudo docker inspect命令查看,可以看到已挂载,权限为只读
如果你有一些持续更新的数据需要在容器之间共享,最好创建数据卷容器。
数据卷容器,其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的。
我们先启动一个容器dv1,并挂载mydata 使用-v现选项
#sudo docker run -it -v /mydata --name dv1dkv
然后添加一个数据卷 使用命令--volumes-from,来读取dv1中的数据
#sudo docker run -it --volumes-from dv1 --name dv2 dkv
我们查看下当前挂载的容器。并关闭dv1
启动dv2,再次查看数据发现数据卷还在 为什么?
这是因为如果删除了挂载的容器,数据卷并不会被自动删除。如果要删除一个数据卷,必须在删除最后一个还挂载着它的容器时使用 docker rm -v 命令来指定同时删除关联的容器。 这可以让用户在容器之间升级和移动数据卷。
#sudo docker run --volumes-from dv1 -v~/backup:/backup dkv tar cvf/backup/backup.tar /mydata
已经备份完毕
我们先删除dv1和dv2 然后创建一个dv3
开始还原数据
# sudo docker run --volumes-from dv3 -v~/backup:/backup dkv tar xvf /backup/backup.tar
再次查看发现数据已经还原回来
本章教程到此结束,下节主要介绍docker网络
本文出自 “linux 虚拟化” 博客,请务必保留此出处http://itjcw.blog.51cto.com/3428881/1680151
标签:docker 数据管理
原文地址:http://itjcw.blog.51cto.com/3428881/1680151