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?

More than 1 year has passed since last update.

Windowsでvhdxファイルサイズを縮小する

Posted at

やりたいこと

WindowsのDockerやRancherDesktopで使用するvhdxファイルのサイズを小さくしたい。

コンテナイメージをたくさん作成したり、コンテナのストレージサイズを消費したりすると、vhdxファイルが大きくなる。その後にイメージを削除、ストレージを削除してもvhdxファイルは小さくならないそうな。

あちこち調べて試しても縮小できなかったが、集めた情報を組み合わせたら縮小できた。おそらく確実に縮小できる手順がこちら。

手順

  1. (Windowsで実行)不要なイメージを削除する。
    1. docker rmiで普通に削除する。
  2. (コンテナで実行)コンテナ内の不要ファイルを削除し、ストレージ使用量を小さくする。
  3. (コンテナで実行)ゼロ埋めファイルを作成して削除する。サイズはcountで指定する(下記例だと40GB)。指定するサイズはこれぐらい減らせるはず、という数字を指定する。
    1. sudo dd if=/dev/zero of=zero bs=1M count=40960
    2. sudo rm zero
  4. (Windowsで実行)コンテナおよびDockerを停止する。
  5. (Windowsで実行)PowerShellを管理者モードで開き、以下を実行する。パスはRancherDesktopの例。
    1. wsl --shutdown
    2. cd C:\Users\xxxxx\AppData\Local\rancher-desktop\distro-data
    3. Optimize-VHD -Path ext4.vhdx -Mode Full

あまり縮小されない場合は、ゼロ埋めファイル作成以降を再度実行すると縮小される。私の場合は65GBから35GBに減らすことができた。コンテナが複数ある場合は、それぞれのコンテナで上記を実行すると良いかもしれない。

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?