科技 · 實用指南
Docker Desktop prune 後磁碟不縮?先分開回收與 VHDX 壓縮
刪除資料或壓縮磁碟前,分別量測 Docker 物件、WSL 檔案系統區塊與正確的主機 VHDX。

`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 位元組未變就停止。
