科技 · 實用指南
Docker 掛載後檔案「消失」?先證明是哪個檔案系統遮住它們
先渲染 Compose 模型、檢查即時掛載圖並比較同一映像的無掛載基線,再重建、複製或刪除資料。

目錄在容器啟動後變空,不代表映像遺失檔案。可見目錄可能是 bind、命名 volume 或巢狀掛載,也可能是 Compose 把相對來源解析到別處。
先保全資料與模型,檢查實際掛載,再用相同 image digest 做無掛載對照;分類後才修復並跨重建驗收。
1. 凍結模型與資料證據
保存 Compose、環境、工作目錄、context 與 image digest,只讀列出來源並記錄權限與雜湊。
執行 docker compose config,記錄所有 source、target 與巢狀衝突。
2. 讀取即時掛載圖
以 docker inspect 讀取 Type、Source、Destination、RW 與 propagation。
確認來源屬於 daemon 主機,並分辨 -v 建目錄與 --mount 報錯。
3. 比較同一映像的無掛載基線
用同一 digest 建立無可疑掛載的暫存容器;若檔案出現,映像仍完整。
比較 bind 來源或 volume 的檔名、雜湊、擁有者、模式與巢狀目的地。
4. 分類後再修復
bind 不合併檔案;新空 volume 只做一次預設 copy-up,重用 volume 保留自己的內容。
若渲染或 inspect 顯示錯誤 Source,修正 base/project path,不要重新灌資料。
5. 修復並證明持久性
把持久資料移到應用程式安裝樹之外;初始化需可重複、版本化並有備份與衝突規則。
重建後驗收首次與第二次啟動、讀寫、雜湊、權限、預期儲存與錯誤路徑無新寫入。
