您的位置:首页 > 运维架构 > Docker

docker学习八 数据卷(二) ---- 数据卷容器

2017-12-25 00:00 190 查看
如果你有一些持久性的数据并且想在容器间共享,或者想用在非持久性的容器上,最好的方法是创建一个数据卷容器,然后从此容器上挂载数据。

创建数据卷容器dbdata

[root@wls12c /]$ docker run -it -v /dbdata:/dbdata --name dbdata centos
[root@07e4ad5587e1 /]

创建db1和db2两个容器,并使用--volumes-from挂载dbdata容器中的数据卷

[root@wls12c /]$ docker run -it --volumes-from dbdata --name db1 centos
[root@wls12c /]$ docker run -it --volumes-from dbdata --name db2 centos

这样三个容器任何一个容器在该目录下写入,其它容器都能看见。

备份

备份dbdata数据卷容器中的数据到主机的当前目录。

[root@wls12c /]$ docker run --volumes-from dbdata -v $(pwd):/backup --name worker centos tar zcf /backup/backup.tar.gz /dbdata
tar: Removing leading `/' from member names
[root@wls12c /]$ ls
b2b            boot    dev   lib         media  net   root     srv   tmp
backup.tar.gz  cgroup  etc   lib64       misc   opt   sbin     sys   usr
bin            dbdata  home  lost+found  mnt    proc  selinux  test  var
[root@wls12c /]$ tar -tvf backup.tar.gz
drwxr-xr-x root/root         0 2016-08-26 10:51 dbdata/
-rw-r--r-- root/root         0 2016-08-26 10:40 dbdata/demo
-rw-r--r-- root/root         6 2016-08-26 10:48 dbdata/test.txt
-rw-r--r-- root/root         0 2016-08-26 10:51 dbdata/hello


如果要恢复数据到一个容器,首先创建一个带有数据卷的容器

[root@wls12c /]$ docker run -v /dbdata/dbdata --name db centos /bin/bash

恢复

[root@wls12c /]$ docker run --volumes-from db -v $(pwd):/backup  centos tar xf /backup/backup.tar.gz
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息