3
2

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のimages消したのにPC容量が減らない WSLが原因かも!

Last updated at Posted at 2024-02-16

概要

Dockerを使った後container images を削除したのにディスク容量が減らないということが起きまし。色んな記事を見ていく中でwsl2が原因というものが多く見受けられました。ボクもそれで苦しんでいたので共有します。

簡単な説明

WSL2では.vhdxファイルという仮想のハードディスクファイルを使用してデータを保存しています。つまりこのファイルを小さくできないかという話です。
イメージとしては.vhdxがペットボトルで中のデータが水だとすると水は飲み干して空っぽなのにペットボトルの空が容量を圧迫しているわけですね。

解決策

1.wsl2の停止

wsl2の状態を確認した後に稼働していれば停止します。

コマンドプロンプト
#wslの状態確認
wsl -l -v 
#wslを停止
wsl --shutdown

2. wsl2の仮想ディスクのパスを特定

ボクの場合 C:\Users{ユーザー名}\AppData\Local\Docker にありました。windows環境によって違いますが、他に見た記事だと C:\Users\{ユーザー名}\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_xxxxxxx\LocalState\ext4.vhdx の場合もあるようです!

警告
記事やお使いの環境によってはコマンドプロンプトが管理者として実行するかしないかでエラーが出たりでなかったりするのでうまくいかなかったら両方試してみてね

3 .vhdxファイルの最適化

コマンドプロンプト
Optimize-VHD -Path <1で特定した.vhdxファイルのパス> -Mode Full 

環境によってはOptimize-VHDが効かないこともあるようです(ボクは効きませんでした)そんな時は4をお試しください

4.Optimize-VHDが効かない時

diskpartで最適化をします。以下が手順です。

コマンドプロンプト
#diskpartに移動
diskpart
# さっき見つけたvhdxを指定
select vdisk file="<1で特定した.vhdxファイルのパス>"
# 開く
attach vdisk readonly
# 最適化する
compact vdisk
# 接続を切る
detach vdisk

終わり

データサイエンスの環境構築をする中でDockerでつまずいたことがあったので君たちの役に立てばと思い投稿してみました。

これからもよろしく!応援しています。

3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?