Container Volume Backup & Restore

Container Volume Backup & Restore 及github大檔上傳

ZONGRU Li
Aug 14, 2022

在已運行且有綁定Volume的Container

打包其Volume的方式

但是過程我看到:

後來我想到我就乾脆直接tar實體目錄就好了

#直接tar實體volume掛載的目錄:
#先找到實體目錄:
sudo podman volume inspect {當初給的volume名稱,這邊是jenkins_home}
#直接sudo tar這個目錄起來,我選用tar.tgz的副檔名:
#壓縮:tar zcvf FileName.tar.tgz FileName:
tar zcvf {檔名}.tar.gz {上面那個Mountpoint}
#解壓:tar zxvf FileName.tar.tgz -C {目錄位置}

最後應該跑了幾十分鐘有才完成

github上傳超過100M檔案解決辦法

所以下載git lfs

download頁面看到:

下載下來放到機台上:

#用root安裝:
sudo rpm -iv git-lfs-3.2.0-1.x86_64.rpm

參考這篇使用

#上面安裝後還要透過以下指令綁定進帳號:
git lfs install
#到前面失敗的git目錄重作.git
rm -rf .git
#大檔的副檔名型態來打包,這邊的話目標檔案是_data.tar.gz所以是gz:
git init
git lfs track "*.gz"
#此時會看到.gitattributes檔案:
ls -al
#接著就是git本身,依序add:
git add .gitattributes _data.tar.gz
git commit -m "large file"
git branch -M main
git remote add origin https://github.com/JavaNoobPig/training.git
git push -u origin main
可能會先要config eamil與名稱

確認:

image打包檔案:

Dockerfile:

要放入的檔案也放在同一個目錄下

#執行:
sudo podman build -t quay.io/{帳號}/training/my-image:v1 .
#後面就可以直接把這個image push:
sudo podman push {上面整個image:tag名稱} --remove-signatures

後面使用要取出就是

#取出檔案:
sudo podman pull {image:tag}
sudo podman image mount {image:tag}

這邊省去pull先在原機做實驗:

如上圖,就可以真的在本基實體目錄找到:

#從上面那個預設目錄把實際檔案拿出來到當下目錄:
cp -r {上面那一大串目錄} ~/
#接著unmount:
sudo podman image unmount imageID

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet