Docker使ってたらディスク容量パンパンになった話と解決法
環境
- Windows 11
- Docker (WSL2使用、Docker Desktopは未使用)
やばい、容量ない...
Dockerで開発してたら、気づいたらディスクの空き容量がめっちゃ減ってて焦った。
「そうだ、使ってないイメージとかコンテナ消せばいいじゃん!」って思って docker system prune 叩いたんだけど...
全然容量増えねぇ...😇
なんで増えないの?
色々調べたら分かったんだけど、docker system prune ってDocker内のゴミは消してくれるんだけど、それが使ってたディスクスペースはそのまま確保されたままなんだって。
例えるなら「部屋の荷物は捨てたけど、部屋のサイズは6畳のまま」みたいな感じ。意味ないじゃん...
で、どうしたら直るの?
1. とりあえずWSL止める
まずWSLを完全停止させます。
wsl --shutdown
2. 容量食ってる犯人を見つける
次に、実際に容量使ってる ext4.vhdx ってファイルを探します。
僕はエクスプローラー開いて、Cドライブのところで「ext4.vhdx」って検索かけました。
そしたら何個か出てくるんだけど、一番デカいやつのパスをコピーしてください。
(もっと賢いやり方あるかもだけど、これが一番楽だった)
3. 圧縮する
PowerShellかコマンドプロンプトを管理者で開いて、以下を順番にやっていきます。
diskpart
DiskPart起動したら:
select vdisk file="C:\Users\[自分のユーザー名]\AppData\Local\Docker\wsl\data\ext4.vhdx"
↑ここはさっきコピーした自分のパスに変えてね
compact vdisk
終わったら:
exit
結果
無事に容量増えた!やったぜ!🎉
まとめ
-
docker system pruneだけじゃダメ。中身消すだけで箱のサイズは変わらん - 箱自体を小さくするには仮想ディスクを圧縮する必要あり
- WSL止めて →
diskpartで圧縮 → 完了!
同じ症状で困ってる人いたら試してみて!