Docker數據容器卷的建立備份和恢復

數據卷容器html

若是容器之間須要共享一些持續更新的數據,最簡單的方式就是是用戶數據卷容器,數據卷容器就是一種普通容器,專門提供數據卷供其它容器掛載使用。docker

建立數據卷容器dbdata
docker run -v /dbdata:/dbdata --name dbdata centosubuntu

建立db1和db2兩個容器,並使用--volumes-from掛載dbdata容器中的數據卷centos

docker run --volumes-from dbdata --name db1 centos
docker run --volumes-from dbdata --name db1 centosbash

三個容器任何一個容器在該目錄下寫入,其餘容器都能看見。ide

[root@localhost ~]# cd /dbdata/
[root@localhost dbdata]# ls
[root@localhost dbdata]# touch index.html
在容器db1裏查看
[root@localhost dbdata]# docker exec db1 ls
會看到有新建文件。htm

備份容器中的數據捲到本地
[root@localhost ~]# 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@localhost ~]# ls
anaconda-ks.cfg backup.tar.gz
[root@localhost ~]# tar xvf backup.tar.gz
dbdata/
dbdata/test.file
[root@localhost ~]# ls
anaconda-ks.cfg backup.tar.gz dbdata
[root@localhost ~]# ls dbdata/
test.fileit

恢復 class

刪除容器中的而文件
[root@localhost ~]# docker exec dbdata rm dbdata/test.file
[root@localhost ~]# docker exec dbdata ls dbdatatest

進行恢復
建立個帶有數據卷的容器dbdata2
docker run -it -v /dbdata --name dbdata2 ubuntu /bin/bash

[root@localhost ~]# docker run --volumes-from dbdata2 -v $(pwd):/backup centos tar xvf /backup/backup.tar.gz
dbdata/
dbdata/test.file

查看恢復的[root@localhost ~]# docker exec dbdata2 ls dbdatatest.file

相關文章
相關標籤/搜索