起こってたこと
ある日、開発serverにsshしたら使用容量が95%になっていた。32G積んでたはずなのに。そんなに沢山色んなもの置いてないのに。調べて原因が分かったので自分のメモとしても残しておきます。
結論
先に結論を言うと、古くなったdockerのイメージなどが容量を圧迫していたので、削除することで元に戻りました。
原因究明
とりあえずどうなってるの見たら/dev/mapper/ubuntu--vg-ubuntu--lvが100%になってる!
$ df -h --total
Filesystem Size Used Avail Use% Mounted on
tmpfs 795M 1.1M 794M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 30G 28G 27M 100% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 2.0G 192M 1.6G 11% /boot
tmpfs 795M 12K 795M 1% /run/user/1000
total 37G 29G 7.1G 80% -
どのディレクトリが使っているか詳しく見ていくと、/var/libが17Gもあるらしい。そんなにいろんなものインストールした記憶ないんだけどな。
$ sudo du -hsx /var/* | sort -rh | head -10
17G /var/lib
162M /var/log
147M /var/cache
2.3M /var/backups
44K /var/tmp
16K /var/spool
4.0K /var/snap
4.0K /var/opt
4.0K /var/mail
4.0K /var/local
さらに/var/libの中身を見ると、dockerがめちゃめちゃ容量使ってると判明。
どうやらdevContainerを使って開発をしていたので、古いコンテナのイメージなどが大量に残っているようです。
$ sudo du -hsx /var/lib/* | sort -rh | head -10
17G /var/lib/docker
214M /var/lib/apt
36M /var/lib/dpkg
5.5M /var/lib/ubuntu-advantage
3.8M /var/lib/command-not-found
1.8M /var/lib/fwupd
748K /var/lib/systemd
548K /var/lib/containerd
216K /var/lib/cloud
148K /var/lib/snapd
解決方法
以下のコマンドで使っていない全てをまっさらな状態にできるみたい。
※全ての停止中コンテナ・未使用イメージ・未使用ネットワーク・ビルドキャッシュが消される
イメージを残したい場合はオプションをつけなければOK
docker system prune -a
個別に消したければ以下のコマンドで可能
docker container prune
docker image prune
docker network prune
docker volume prune
結果
容量が17G -> 3.2Gに大幅改善されました。これからも定期的に古くなったイメージなどは削除しないといけないですね。(当たり前)
sudo du -hsx /var/lib/* | sort -rh | head -10
3.2G /var/lib/docker
214M /var/lib/apt
36M /var/lib/dpkg
5.5M /var/lib/ubuntu-advantage
3.8M /var/lib/command-not-found
1.8M /var/lib/fwupd
748K /var/lib/systemd
472K /var/lib/containerd
216K /var/lib/cloud
148K /var/lib/snapd
参考文献