docker容器之数据管理
2018-01-19 08:52
621 查看
1、数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:
数据卷可以在容器之间共享和重用对数据卷的修改会立马生效
对数据卷的更新,不会影响镜像
卷会一直存在,即使挂载的数据卷的容器已经删除。
数据卷的使用,类似于 Linux 下对目录或文件进行 mount。
示例:
docker run -idt --name wyl01 -v /opt/container/:/data centos /bin/bash
docker run -itd --name wyl02 -v /opt/data centos /bin/bash
2、挂载一个主机目录作为数据卷
使用 -v 标记也可以指定挂载一个本地主机的目录到容器中去。[root@bfd-v7 container]# docker run -idt --name wyl01 -v /opt/container/:/data centos /bin/bash #第2步我们发现wyl01容器中并有数据 #第3步我们在本地的container目录下创建一个web.txt文件 #第4步我们在wyl01的容器中的data目录下发现也同样有一个web.txt文件。
3、数据卷容器
如果你有一些持续更新的数据需要在容器之间共享,最好创建数据卷容器。数据卷容器,其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的。
首先,创建一个命名的数据卷容器 wyl02,然后,在其他容器中使用 --volumes-from 来挂载 wyl02容器中的数据卷。
[root@bfd-v7 container]# docker run -itd --name wyl02 -v /opt/data centos /bin/bash [root@bfd-v7 container]# docker run -itd --name wyl03 --volumes-from wyl02 centos /bin/bash [root@bfd-v7 container]# docker exec wyl02 touch /opt/data/www.txt [root@bfd-v7 container]# docker exec wyl02 ls /opt/data [root@bfd-v7 container]# docker exec wyl03 ls /opt/data #第1步:创建一个wyl02命名的数据卷容器 #第2步:--volumes-from 来挂载 wyl02容器中的数据卷 #第3步:查看两个容器的data目录下都没有数据 #第4步:在其中一个容器的data目录下面创建数据 #第5步:在另一个容器的data目录下面同时会生成一样的数据。
4、数据卷的备份和迁移
[root@bfd-v7 container]# docker run -itd --name wyl04 --volumes-from wyl02 -v /opt/data/backup:/backup centos tar cvf /opt/data/backup.tar.gz /opt/data 506fa942b66173a27594163be918b74401a96db99ad8e42afadd38fc149cdc5b参数说明
--volumes-from wyl02 是挂载需要备份的数据卷容器名称,它就是一个容器。
-v /opt/data:/opt/data 这是挂载主机目录到窗口中,第一个/opt/data是代表着容器的目录,第二个/opt/data是代表着主机的目录。
centos 是代表着容器的REPOSITORY的ID,这个ID可以用docker images命令查看。
tar czvf /opt/data/backup.tar.gz //opt/data 这部分放在后面,代表着容器启动成功后的命令。这部分就是对数据卷进行压缩,/sb/backup.tar.gz 这个目录是挂载的主机的目录,只要压缩到这个目录,那就相当于主机的目录也就有了相应的数据, //opt/data这个目录是挂载的数据卷容器中的目录,综合起来就是一组压缩命令,正好实现了把数据卷中的数据备份到当前主机中。
<
b2b9
/div>