資料持久化設定

容器重建不丟資料 —— 這一步千萬別跳過

血淚教訓

😱 升級容器後資料全沒了?

你滿心歡喜地升級了容器映像,重啟之後發現 —— 設定沒了,資料沒了,之前改的所有東西全部歸零。這不是 bug,這是 Docker 的正常行為:容器是暫時的,刪掉就啥都不剩。你不做持久化,它就不幫你存。

解決方案

✅ Docker Volume Mapping 一招搞定

用 Docker volume mapping 把容器內的重要目錄映射到宿主機的物理路徑上。容器隨便刪、隨便重建,只要映射路徑裡的檔案還在,資料就不會丟。這是 Docker 最基本也最重要的操作,沒有之一。

四步搞定持久化

1

建立目錄結構

在 NAS 上建立好資料目錄。目錄結構清晰,後面備份遷移都方便。建議按功能分成 data、config、logs、memory 四個子目錄。

2

映射卷到容器

在 docker-compose.yml 或者 Docker 管理介面裡,把宿主機目錄映射到容器內對應的路徑。映射之後容器寫入的資料實際上就存在 NAS 硬碟上了。

3

設定定時備份

雖然資料已經在 NAS 上了,但 RAID 保護不了你手滑刪檔案。寫個簡單的備份腳本,配合 cron 定時跑,多一層保險。

4

驗證恢復流程

別光備份不測試。把容器刪掉重建一次,確認資料還在、設定還生效、服務能正常啟動。等到真出事的時候再發現備份是壞的就晚了。

Volume 映射示例

下面是推薦的目錄結構和映射方式,適用於群暉、威聯通、Unraid 等所有 NAS:

docker-compose.yml 卷映射
services:

自動備份腳本

寫個指令碼,每天自動打包一份備份。保留最近 7 天的,自動清理舊的:

備份指令碼
#!/bin/bash

定時任務設定

把備份指令碼加到 cron 裡,每天凌晨 3 點自動執行:

crontab 定時備份
# 編輯 crontab
⚠️ RAID 不是備份!RAID 保護你的資料不因為單塊硬碟掛掉而遺失,但它保護不了你誤刪檔案、ransomware 加密、NAS 主機板燒了、家裡遭賊這些情況。真正的備份策略是 3-2-1:3 份資料、2 種介質、1 份異地。至少把備份檔案同步到一個雲盤或者另一台設備上。

進階備份方案

如果你對資料安全要求更高,可以看看進階備份教學,裡面講了增量備份、加密備份、雲端同步等方案:

👉 進階備份與災難恢復

不想自己管資料備份?MOLILI 的託管方案自帶自動備份和資料復原功能,省心。 了解 MOLILI →
這篇教程對你有幫助嗎?