※この記事は社内 wiki にあった記事を移植したものです!ところどころ古いものがありますがご了承ください
docker の扱いを知らなくてこうなってしまったので、Ubuntu の容量を減らします。
Ubuntu の容量を減らす
# 必要なコンテナを保護する
docker compose up
# いったん確認
docker image ls -a
# ↓ どんどんつよくなる ↓
# dangling image を削除
docker image prune
# unused image を削除
docker image prune -a
# image と他を削除
docker system prune -a
# image と他と volume を削除
docker system prune -a --volumes
# はじめに立ち上げたコンテナを止める
docker compose down
各コマンドの詳細はここを参照 -> https://docs.docker.jp/config/pruning.html
docker system prune -a --volumes
をするとこうなりました!笑っちゃいました。
Windows から見た WSL の容量を減らす
さて、このコマンドで内部 (Ubuntu) をきれいにしても、外部 (Windows) から見た容量は変わりません。なので、Windows 側から見る容量を減らします。
まずは PowerShell を開きます。管理者権限が必要かも。
はじめに WSL をシャットダウン
wsl --shutdown
サイズ最適化
optimize-vhd -Path C:\Users\dareka\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx -Mode full
※ ここででてくるパスは、対象のディレクトリに行った後に、 [Shift] を押しながら右クリックをすると現れる [パスのコピー] という隠しコマンドを使うと楽に取得できます。
ここを参考にしました。
-> https://www.curict.com/item/f4/f46da60.html
optimize-vhd
とやらができなければこちら。私はこちらでやりました。
ここで手順を間違えると最悪 WSL が使えなくなるのでご注意ください。
diskpart
select vdisk file="C:\Users\dareka\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit
ちなみに、ファイルへのパスをコピーするときには Shift + 右クリックが便利です。メニューに「パスのコピー」がでてきます。
diskpart
の操作はここを参考にしました。
-> https://qiita.com/siruku6/items/c91a40d460095013540d
結果
無事に容量を減らせました
追記
社内でこのような話がありました。容量をさらにあけたい方はどうぞ。(抜粋します。)
docker system prune -a --volumens
で容量をあける方法の記事がながれていましたが、どうもそれだけでは消えないようで、
↑のコマンドを実行しても、130Gほどのファイルが残っているようでした。
root@:/# du -sh /var/lib/docker/
130G var/lib/docker/
なので、
rm -rf /var/lib/docker/volumes/*
とやってみました。
そうしたら、99%までいってしまっていたストレージの使用容量が、
~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 8057676 0 8057676 0% /dev
tmpfs 1624784 2276 1622508 1% /run
/dev/mapper/vgubuntu-root 242730404 78103552 152223960 34% /
tmpfs 8123908 363636 7760272 5% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 8123908 0 8123908 0% /sys/fs/cgroup
にまで戻りました。Dockerはゴミファイル( docker system prune
とやっても消えないファイル)が大量に出るのでしょうか。
※消した後は docker の deamon を再起動してください。
sudo service docker start