Watch at Ease看見世界,讀懂生活。

科技 · 實用指南

Docker 掛載後檔案「消失」?先證明是哪個檔案系統遮住它們

先渲染 Compose 模型、檢查即時掛載圖並比較同一映像的無掛載基線,再重建、複製或刪除資料。

Compose 渲染、即時掛載、無掛載基線與驗收流程。
原創示意圖:先證明可見檔案系統再重建。 Watch at Ease

目錄在容器啟動後變空,不代表映像遺失檔案。可見目錄可能是 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. 修復並證明持久性

把持久資料移到應用程式安裝樹之外;初始化需可重複、版本化並有備份與衝突規則。

重建後驗收首次與第二次啟動、讀寫、雜湊、權限、預期儲存與錯誤路徑無新寫入。

bind、volume copy-up 與錯誤路徑解析矩陣。
原創示意圖:三種相似症狀需要不同修復。 Watch at Ease