Docker Desktopの質問があります。Win10です。
メモリやコア数の設定は、lin5さんの質問でわかりました。
ディスク容量の制限はできますか?
使い終わったコンテナやイメージを消しているつもりですが、
パソコンの容量がぜんぜん減らない気がします。
Dockerには確認する場所もなさそうですが、調べるところはありますか。
御存じの方はご教授いただけますでしょうか。
Docker Desktopの質問があります。Win10です。
メモリやコア数の設定は、lin5さんの質問でわかりました。
ディスク容量の制限はできますか?
使い終わったコンテナやイメージを消しているつもりですが、
パソコンの容量がぜんぜん減らない気がします。
Dockerには確認する場所もなさそうですが、調べるところはありますか。
御存じの方はご教授いただけますでしょうか。
@yanagi さん、こんばんは!
良い質問ですね!
私も気になっていたので、改めて調べ直してみました。
Docker Desktop for Windows で WSL2 を使っていて、かつ、今日現在リリースされている Docker Desktop version 4.8.2(79419) を前提に、以下説明します。
Docker Desktop ではディスク容量の制限は できません 。Docker Desktop で容量が必要になれば、必要な分だけ自動的に拡張される仕組みです。
勝手に増えるのは便利なのですが、 自動的に容量は減りません 。極端な話、一度 WSL で 50GB を確保してしまうと、Docker 側でイメージやボリュームを消したとしても、50GB は PC 上で確保し続けます。
どうしたらよいかというと
Optimize-VHD
というツールで、容量を最適化という流れになります。
具体的に見ていきます。
まず、 Docker Desktop で不要なコンテナやイメージを停止・削除します。
Powershell を「管理者」として起動し、 docker system df
コマンドを実行すると、コンテナやイメージ、ボリュームなどが使っている容量が出ます。
PS C:\WINDOWS\system32> docker system prune
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 12 7 2.371GB 906.9MB (38%)
Containers 11 2 37.27MB 37.27MB (99%)
Local Volumes 5 3 717.4MB 219.7MB (30%)
Build Cache 43 0 19B 19B
この状態で、次のコマンドを実行すると、現在使っていない(停止中の)コンテナ、ボリューム、ネットワークの情報、構築時のキャッシュを消せます。
要は、使っていないものを消します。ただし、あとから使う予定で、停止しているコンテナも削除してしまうため、よくわからない場合は、使わないほうが良いかもしれません。調べてから実行をお願いします
改めて、実行するコマンドはこちら。
docker system prune -f
docker builder prune -f
その後、もう一度 docker system df
を使って容量を確認しますと、私の環境では、こんな感じで 1GB ほどイメージが消えました。
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 2 2 1.055GB 0B (0%)
Containers 2 2 6B 0B (0%)
Local Volumes 5 2 717.4MB 439.3MB (61%)
Build Cache 1 0 0B 0B
さて、次に問題なのが、 Dokcer 上からは消えたように見えても、WSL のディスク容量が増えたまま という点です。
それが、まさにこの現象です。
Docker Desktop が使っている WSL 用のファイルは、C:\Users\ユーザ名\AppData\Local\Docker\Wsl\data\ext4.vhdx
です。私の環境では、こんな感じです。約17GBあります。
このファイルを小さくするコマンドがあります。
先ほどの管理者として実行している PowerShell 上で、次のコマンドを実行します。
wsl --shutdown
Optimize-VHD -Path "$($env:LOCALAPPDATA)\Docker\wsl\data\ext4.vhdx" -Mode Full
※ Docker Desktop を起動中の場合、 wsl --shutdown
で警告が出ますが、そのまま WSL は停止しておきます。
コマンドを実行すると、このように最適化処理が始まります。
そして、特にエラーもなく
PS C:\WINDOWS\system32>
このような表示に戻ってきたら、大丈夫です。
先ほどのファイル容量を見ますと、
このように 15.6 GB 近くまで、わずかですが容量を圧縮できました。
是非おためしください
参考にした記事:
書いてくださった方法で減らせました。
ありがとうございました。
便利そう。ためしてみようっと