1. 程式人生 > >Docker數據容器卷的創建備份和恢復

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

dex 備份 需要 worker doc naconda .tar.gz -- localhost

數據卷容器

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

創建數據卷容器dbdata
docker run -v /dbdata:/dbdata --name dbdata centos

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

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

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

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

備份容器中的數據卷到本地
[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.file

恢復

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

進行恢復
創建個帶有數據卷的容器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 dbdata
test.file

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