docker數據卷容器備份、恢復超詳細!小白也可以!!!

docker數據卷備份與恢復

在日常生活中,把容器和本地物理機做了目錄映射直接存在本地,那麼我們只需要對本地的硬盤定期備份就好了,但如果沒有這個映射的情況下,備份和恢復該如何處理呢?

首先我們創建一個需要備份的數據卷,

docker run -itd -v /opt/zz --name c1 centos /bin/bash

在這裏插入圖片描述

-itd 是以交互的方式運行,d是後臺運行
-v 是指定容器內的數據卷,如果指定的數據卷不存在,會自動創建
–name 自定義名字
/bin/bash 交互命令以/bin/bash來

爲了驗證數據卷容器的備份功能,在掛載的/opt/zz目錄下創建一個c11文件,並寫入內容"woda"。

[root@160e0646396d zz]# touch c11.txt
[root@160e0646396d zz]# echo "woda" > c11.txt 
[root@160e0646396d zz]# cat c11.txt
woda

然後爲了給數據卷容器備份,使用 –volumes-from 來標記需要備份的數據卷,並從主機掛載當前目錄到容器的/v3目錄。
$(pwd)是docker支持的指定當前目錄的方法,瞭解linux基本命令的會發現,linux查看當前目錄就是pwd命令。
容器啓動後,在當前目錄下生成的c23.tar文件就是/opt/zz容器卷的備份文件。
這樣,數據卷容器中的數據就備份完成。
整個實踐過程如下:

[root@client ~]# docker run --volumes-from c1 -v $(pwd):/v3 centos tar cvf /v3/c23.tar /opt/zz
tar: Removing leading `/' from member names
/opt/zz/
/opt/zz/c11.txt

最後我們就可以看到我們之前在需要備份的容器的數據卷裏的內容了,/opt/zz/c11.txt

–volumes-from < Container >: 連接要備份數據的容器
-v $(pwd):/v3:掛載當前路徑到容器centos 容器,數據將會備份到此路徑
centos: 非常小的鏡像
tar cvf /v3/c23.tar /opt/zz: 將 /opt/zz 路徑下的文件打包到 c23.tar

二 恢復

備份最終也是爲了可以恢復,否則備份就沒有意義了,Docker恢復備份也很簡單,只需要2步即可。
首先,創建一個帶有空數據卷的容器/opt/x2。
docker run -itd -v /opt/x2 --name c3 centos /bin/bash

docker run -itd -v /opt/x2 --name c3 centos /bin/bash

然後,創建另一個容器,掛載data1容器卷中的數據卷,並使用untar解壓備份文件到掛載的容器卷中。
docker run --volumes-from c3 -v $(pwd):/v3 centos tar xvf /v3/c23.tar
這個時候,之前備份的數據卷容器的數據已經恢復到了容器/opt/x2中了。
爲了查看和驗證恢復的數據,我們可以再啓動一個容器掛載/opt/x2容器捲來查看。
整個實踐過程如下:

[root@client ~]# docker run --volumes-from c3 -v $(pwd):/v3 centos tar xvf /v3/c23.tar
opt/zz/
opt/zz/c11.txt

最後我們就可以看到我們之前備份的c11.txt,現在已經恢復到c3這個容器中的數據捲了

如果有用的話,記得點贊收藏,評論一條龍喲,嘻嘻
在這裏插入圖片描述

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