0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

docker system pruneしてもストレージが空かないときの対処法【備忘録】

Last updated at Posted at 2025-04-08

結論

WSLを使ってる場合はdocker system purneするだけだと本体ストレージに反映されないので、仮想ディスク(vhdx)を圧縮する必要がある!

実行環境

  • Windows 11
  • WSL2(Hyper-V付き)
  • Docker Desktop

前提

  • docker system prune等で不要なイメージなどを削除済み。

1. 容量圧迫しているファイルを探す

まずは、ストレージを圧迫しているファイルを特定します。DiskInfoが個人的に見やすかったです。

ここで、容量を大きく使っているファイルが .vhdx だった場合は、仮想ディスクが圧縮されていないことが原因です。

僕の場合はここにありました↓
C:\Users\ユーザー名\AppData\Local\Docker\wsl\disk\docker_data.vhdx

2. Docker DesktopとWSL2を停止する

WSL2やDocker Desktopが起動していると圧縮に失敗するので、事前に停止しておきます。

Docker Desktopはアプリから停止します。
左下の三点リーダーアイコン>Quit Docker Desktopで停止できます。

image.png

WSL2はPowerShellからwsl --shutdownを実行します。

3.Optimize-VHDで圧縮を行う

PowerShellを管理者権限で実行します。

コンソールを開いたら、下記のようにOptimize-VHDコマンドを実行します。

Optimize-VHD は、WSL2で使用されている .vhdx 仮想ディスクの空き領域を圧縮するためのPowerShellコマンドです。

圧縮対象のパスには、1で見つけたファイルのフルパスをメモっておいて貼り付けてください。

PS > Optimize-VHD {圧縮対象のパス} -Mode Full

このコマンドを実行すると対象の仮想ディスクが圧縮されます。

実際にDiskInfoでもう一度確認してみると、80GBもストレージを開けることに成功しました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?