テクノロジー · 実用ガイド
Docker Desktop の prune 後も容量が戻らない?回収と VHDX 圧縮を分ける
データ削除や圧縮の前に、Docker object、WSL filesystem block、正しいhost VHDXを別々に測定します。

`docker system prune` は Docker object を解放しても、Docker Desktop を支える Windows file を直ちに縮めるとは限りません。Docker ownership、Linux内のfree block、host VHDXのallocated bytesを別々に扱います。
残す対象を固定する
running/stopped container、image、builder、named/anonymous volume、Compose project、復旧用backupを列挙します。Docker DesktopとWSLのversion、backend、disk location、host free spaceを保存し、`--volumes`やVHD削除から始めません。
3層を別々に測る
`docker system df -v`、builder usage、Docker/WSL内Linux filesystem usage、Windows上の正確な`.vhdx` physical bytesを保存します。それぞれobject ownership、guest allocation、host allocationです。
確認済み未使用objectだけpruneする
inventoryに合う最小範囲のpruneを選びます。system pruneはstopped container、unused network、dangling image、unused build cacheを対象にします。tagged imageとvolumeは追加flagや別commandが必要です。
diskとversion境界を確認する
移行やupgrade後はDocker Desktopが現在管理するVHDXを確認します。4.34.0はmanaged WSL2 VHDのautomatic reclaimを導入したため、manual compaction前にrestartして再測定し、古いpathを流用しません。
host compaction前にdetachする
guest blockが空いてもhost VHDXが大きく、managed pathが自動回収しない場合はDocker Desktopを終了し`wsl --shutdown`を実行します。正しいdynamic VHDが未使用であることを確認します。
before/afterで閉じる
Docker usage、guest filesystem、VHDX bytes、Windows free spaceを再測定します。Docker Desktopを再起動し、残すcontainerとvolume、application healthを確認します。誤disk、data loss、attached VHD、bytes不変なら停止します。
