Docker-數據卷和數據容器卷

容器中管理數據主要有兩種方式:

數據卷(Data Volumes)

數據卷容器(Data Volumes Dontainers)

 

數據卷

使用-v可以掛載一個本地的目錄到容器中作爲數據卷。

複製代碼

[root@wls12c /]$  //]$ docker exec -it tomcat /bin//]#  /
[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   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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章