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

科技 · 實用指南

Docker Desktop prune 後磁碟不縮?先分開回收與 VHDX 壓縮

刪除資料或壓縮磁碟前,分別量測 Docker 物件、WSL 檔案系統區塊與正確的主機 VHDX。

原創示意圖:Docker Desktop prune 後磁碟不縮?先分開回收與 VHDX 壓縮
原創示意圖:`docker system prune` 可以釋放 Docker 物件,卻不保證承載 Docker Desktop 的 Windows 檔案立即縮小。請把問題拆成三項量測:Docker 物件歸屬、Linux 內部空閒區塊、主機 VHDX 已配置位元組。 Watch at Ease

`docker system prune` 可以釋放 Docker 物件,卻不保證承載 Docker Desktop 的 Windows 檔案立即縮小。請把問題拆成三項量測:Docker 物件歸屬、Linux 內部空閒區塊、主機 VHDX 已配置位元組。

凍結必須保留的資料

列出執行中與已停止容器、映像、builder、named 與 anonymous volume、Compose 專案及恢復所需備份。記錄 Docker Desktop、WSL 版本、後端、磁碟位置與主機空間。不要先使用 `--volumes` 或刪除 VHD。

分別量測三層

保存 `docker system df -v`、builder 用量、Docker/WSL 內 Linux 檔案系統用量,以及 Windows 上正確 `.vhdx` 的實體位元組。三者分別代表物件歸屬、guest 配置和 host 配置。

只清理確認未使用物件

依清單選最窄 prune 命令。system prune 處理停止容器、未用網路、dangling 映像與未用 build cache;tagged 映像和 volume 需要額外旗標或獨立命令。先閱讀刪除預覽。

識別磁碟與版本邊界

確認 Docker Desktop 目前實際管理哪個 VHDX,遷移或升級後尤其重要。4.34.0 為受管 WSL2 VHD 引入自動回收,所以先重啟並重測,再考慮手動壓縮;不要沿用舊路徑。

主機壓縮前先卸離

若 guest 區塊已釋放但 host VHDX 仍大,而且受管路徑未自動回收,退出 Docker Desktop 並執行 `wsl --shutdown`。確認正確動態 VHD 不再使用;Microsoft 要求卸離或唯讀附加。

用前後證據結案

再次量測 Docker 用量、guest 檔案系統、VHDX 位元組與 Windows 空間。重啟 Docker Desktop,驗證保留容器、volume 和應用健康。若錯誤磁碟變動、資料遺失、VHD 仍占用或 host 位元組未變就停止。

原創示意圖:主機壓縮前先卸離
原創示意圖:若 guest 區塊已釋放但 host VHDX 仍大,而且受管路徑未自動回收,退出 Docker Desktop 並執行 `wsl --shutdown`。確認正確動態 VHD 不再使用;Microsoft 要求卸離或唯讀附加。 Watch at Ease