Container備份還原

 

備份
1.VM:Hyper-V建立的MobyLinuxVM.vhdx
2.Volume:MariaDB與Nextcloud設定存放D槽的Docker Folder
3.參數安裝檔:docker-compose.yml

備份注意:
VM檔與Volumes的資料夾備份時間需一致,如有多份不同時間點的備份,避免將時間點A與時間點B的備份混合還原。
因MobyLinuxVM.vhdx內存放container對應的Image檔,MariaDB記錄Nextcloud的設定與資料狀態。
如取不同備份時間點的檔案作混合還原,則程式版本或Nextcloud的設定與資料狀態會與DB的紀錄不一致。


還原
1.在原主機故障時,將上述備份的檔案複製到新的主機,並放置於參數設定中的絕對位置,即可轉移至新主機完整還原。
如新主機要以新IP執行,非原主機IP,則Nextcloud內的config.php需修改trusted_domains的參數,FW修改Virtual IPs內的對應IP。
2.如VM或Docker Folder任一個有毀損,則以最近時間點的備份檔完整還原。
3.當還原時,該備份時間點之後,user做過的任何異動皆無紀錄,server端資料狀態為該備份時間點的紀錄,會與client端有差異。
此時如client端同步軟體開始恢復同步,則資料會同步跟server一致,會造成client端新增的檔案或內容會刪除或還原,原已刪除的檔案則會還原。

故nextcloud重建還原時,需依下列步驟執行:
1.Client端暫停同步或關閉同步軟體。避免資料被刪除。
2.Client端同步資料夾進行備份或將資料夾更改名稱,避免重新同步後,資料被刪除。
3.Server端進行重建或還原:當Docker Folder要還原時,依以下步驟
(1)將全部container停止:docker stop [Container ID]
(2)將原始Docker Folder刪除或更名。
(3)將備份的Docker Folder複製還原至原始Docker Folder
(4)將全部container重啟:docker restart [Container ID]
以"restart"將container重啟將會套用新的Docker Folder。
若stop後以"start"恢復開始,則會讓container恢復stop前的重建步驟,此時複製還原的Docker Folder會被改寫成重建狀態。


Nextcloud版本更新
官方建議重新下載新版的Image後,移除舊的container,以新的image重新建立新的container。更版前,建議先做備份。
1.將全部container停止:docker stop [Container ID]
2.移除nextcloud的container
3.重新下載新的nextcloud image:docker pull nextcloud
以此指令會下載當前tag為latest的image,下載後,會有兩個相同名稱但tag不同的image。
原始image的tag會變成(none),新image的tag會變成latest。
可用:docker tag [IMAGE ID] [REPOSITORY:TAG],幫image改變tag,建議tag標示版號,以便識別。
4.再次執行:docker-compose up,重建container。此時新版contauner辨識Docker Folder內設定版本不同,即會開始進行更新步驟。
5.瀏覽器開啟後,無登入畫面,出現"開始升級"選項,可以點選讓程式開始更改Docker Folder內設定進行更版。
或依下方指示,docker exec進入container,執行"./occ upgrade"進行更新,則不用透過瀏覽器。(建議依此方法)
6.更新過程中,如開啟瀏覽器,會顯示為"維護模式",待更新完成,才會恢復成登入畫面。
7.更新會改變Docker Folder內的參數設定檔案,但不會對user data造成影響。