用 tar 來備份和還原 Container 的時候,要注意的事項就只有一個,那就是為了保持 Container 內的檔案系統的權限,因此,在壓縮和解壓縮 Container 的檔案時,都需要用到 --numeric-owner 這個選項,不然,不加這個選項的話,解壓縮後的檔案可能會讓 Container 運作的不太正常哩 !
- 備份
以下就是阿舍備份 Container 的操作步驟, 是以阿舍的 Container 名稱是 ayusite 為例。
1. 關閉 Container
執行壓縮前最好是先用下面的指令先把要備份的 Container 給關閉。
$ sudo lxc-stop -n ayusite
2. 壓縮
執行上一面的指令關閉 Container 後,可以用下面第一行的指令來檢視 Container 的狀態,確定關機後,再用下面第二行指令來執行壓縮,原則上來說,要被壓縮的路徑就是 /var/lib/lxc/[Container名稱],以阿舍的 ayusite 為例,就是 /var/lib/lxc/ayubizsite。
$ sudo lxc-ls -f
$ tar --numeric-owner -czvf ayusite.tar.gz /var/lib/lxc/ayusite
3. 搬檔
壓縮要花一點時間,壓縮完成後,就可以把產生出來的 tar.gz 檔案給收藏起來,下次要用時,再找出來囉 !
4. 刪除 Container
如果你和阿舍一樣,目的是要節省空間的話,就可以用下面的指令來把 Container 給移除。
$ sudo lxc-destroy -n ayusite
- 還原
後來,阿舍要把前面打包的那個名叫 ayussite 的 Container 給放到阿舍的 VPS 上來執行,所以,阿舍就需要在 VPS 上「還原」,以下就是阿舍還原的操作步驟哩 !
1. 建立同名 Container
阿舍在 VPS 上已經有安裝過 LXC 套件了,所以,可以直接用下面的指令來建立相同名稱 Container,阿舍使用相同名稱是為了不想再去改設定,將 Container 取相同名稱,就只要把壓縮檔解開蓋上即可,不用去調設定檔哩 !
另外,建立 Container 的方式有二種,一種是用範本檔的方式,另一種是透過下載檔案的方式,為了避免差異,阿舍都會採用 Container 原來的建立方式來新建這個 Container,以這個 ayusite 的 Container 為例,阿舍是用下載的方式建立的,所以,這裡也採用相同的方式建立同名的 Container 哩 !
$ sudo lxc-create -t download -n ayusite -- -d ubuntu -r trusty -a amd64
2. 上傳檔案
阿舍是用 scp 的方式來把壓縮檔給上傳到某一個使用者的家目錄來放,之後,再直接把它解壓縮到 /var/lib/lxc 資料夾哩 !
$ scp ayusite.tar.gz arthurtoday@xyz.com:~/
3. 解壓縮
解壓縮的時候和壓縮一樣,也是要使用 --numberic-owner 選項,然後,用 -C 選項指定解開的檔案放在 / (根目錄),這樣檔案才會直接蓋掉在新建的 Container 的檔案上哩 !
$ sudo tar --numeric-owner -zxvf ayusite.tar.gz -C /
4. 啟動 Container
上面的還原動作都完成後,用下面的指令來啟動後,這個 Container 裡跑的東西就會和你備份刪除的那一個 Container 相同哩 ! ...
要提醒的是,阿舍這個方法只有試過在一般建成的 Container 上,如果有用到 overlayfs 的方式的話,阿舍就不確定這種方式可不可了哩 ! ...
推薦閱讀
- 問題沒解決嗎? 更多的 Ubuntu 教學在 這裡
- Prompt Injection: 提示詞注入安全漏洞
- 二款 Mac 無痛安裝的 Stable Diffusion 軟體
- 用 AI 寫部落格文章好不好 ?
- 沒有免費的 Midjourney 和 Colab 又不想花錢怎麼辦 ?
- 不學 Prompt 技巧也能善用 ChatGPT 的簡單方法
- 企業 AI 應用:不只是聊天機器人
- Automatic 比 Automatic1111 更好用 ? 都是 Stable Diffusion WebUI
- Stable Diffusion 的 /describe 圖生文功能
- AI 畫出讓人可怖的美圖 !
有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁
沒有留言 :
張貼留言
歡迎留言提問和討論 .... 😁