利用數據卷容器遷移數據--docker數據的備份與恢復

在docker中,可以利用數據卷容器對其中的數據捲進行備份,恢復,以實現數據的遷移。

1.備份
docker run --volumes-from dbdata -v $(pwd):/backup --name worker1 centos tar cvf /backup/backup.tar /dbdata
tar: Removing leading `/' from member names
/dbdata/
/dbdata/test
這個命令的含義是:首先利用centos鏡像創建了一個容器worker1。使用--volumes-from dbdata參數讓worker容器掛載dbdata容器的數據卷(即dbdata數據卷);使用 -v $(pwd):/backup參數來掛載本地的當前目錄到worker容器的/backup目錄。

worker 容器啓動後,使用tar cvf /backup/backup.tar /dbdata命令將/dbdata 下內容備份爲容器內的/backup/backup.tar, 即宿主機當前目錄下的backup.tar。

2.恢復

如果要將數據恢復到一個容器,首先創建一個帶有數據卷的容器dbdata2

[root@localhost ~]# docker run -v /dbdata --name dbdata2 centos /bin/bash

然後創建另一個新的容器,掛載dbdata2的容器,並使用tar 解壓備份文件到所掛載的容器卷中:

[root@localhost ~]# docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
90e01955edcd: Pull complete
Digest: sha256:2a03a6059f21e150ae84b0973863609494aad70f0a80eaeb64bddd8d92465812
Status: Downloaded newer image for busybox:latest
dbdata/
dbdata/test

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