首页 > 代码库 > Docker-数据卷和数据容器卷
Docker-数据卷和数据容器卷
容器中管理数据主要有两种方式:
数据卷(Data Volumes)
数据卷容器(Data Volumes Dontainers)
数据卷
使用-v可以挂载一个本地的目录到容器中作为数据卷。
[root@wls12c /]$ ls /b2bbackup prog_update wasStatus.log[root@wls12c /]$ docker run -d --name=tomcat -v /b2b:/test -it centos /bin/bashf85c616bde3317c857b657355561a1cfa4203fab2b8619386435e541089bde23[root@wls12c /]$ docker exec -it tomcat /bin/bash[root@f85c616bde33 /]# ls /testbackup prog_update wasStatus.log
[root@f85c616bde33 /]# touch test/demo
[root@f85c616bde33 /]# ls /test
backup demo prog_update wasStatus.log
[root@f85c616bde33 /]# exit
exit
[root@wls12c /]$ ls /b2b
backup demo prog_update wasStatus.log
可以看见容器中已经挂载了/b2b目录了,并有其中数据。
数据卷容器
如果容器之间需要共享一些持续更新的数据,最简单的方式就是是用户数据卷容器,数据卷容器就是一种普通容器,专门提供数据卷供其它容器挂载使用。
创建数据卷容器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 /dbdatatar: Removing leading `/‘ from member names[root@wls12c /]$ lsb2b boot dev lib media net root srv tmpbackup.tar.gz cgroup etc lib64 misc opt sbin sys usrbin 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
Docker-数据卷和数据容器卷
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。