wsl2でdockerが占有する容量の開放


docker on wsl2 が容量を開放してくれない

wsl2上でdockerを動かしていると、イメージが肥大して容量を食っていきますが、docker system pruneでも容量を減らない時は以下を試す。
以下リンク先記事を参考にさせて頂き実行。自分用の備忘録として投稿。

容量開放手順

  1. docker終了
  2. wsl用いているVScodeなりTerminalなりがあれば終了
  3. 以下コマンドをpowershellで順に実行
# wslを終了させる呪文。不具合等起きた時も基本これ
> wsl --shutdown

# diskpartを起動する(diskpartのウィンドウが開きます)
> diskpart

# 対象のvhdxファイルを指定(PATHは各自確認)
DISKPART> select vdisk file="C:\Users\username\AppData\Local\Docker\wsl\data\ext4.vhdx"
DISKPART> attach vdisk readonly

# 私の環境の場合はイメージファイルが以下にばらけてました
# C:\Users\username\AppData\Local\Docker\wsl\distro\ext4.vhdx
# C:\Users\username\AppData\Local\Docker\wsl\data\ext4.vhdx
# C:\Users\username\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx
# 3つ目のものはdockerでなくubuntuそのものっぽい

# 最適化する
DISKPART> compact vdisk

# 終了
DISKPART> detach vdisk
DISKPART> exit