リモートの開発環境にプロジェクトで必要になった新たなコンテナを試しに起動してdocker composeに記載することをしていたら、突然保存ができなくなってしまいました。
dockerでポコポココンテナ建ててた以外になにもしていなかったので、正直困惑していました。
1. 犯人探し
まずは、ディスクの空き容量を確認してみましょう。ディスク容量の確認は以下のコマンドを打ち込むと簡単に確認できます。
ちなみに、-hオプションは、人間に読みやすいように表示してくれます。
df -h
ディスク容量が100%になってしまっています!これで保存できない原因がなにかの不具合ではなく、本当に容量が足りないということが判明しました。
次に、どこのディレクトリが容量を食っているのか確認していきましょう。
duコマンドでディレクトリごとにどれくらい容量があるのか表示してくれます。
手始めに、一番上の階層から確認するのが妥当でしょう!
sudo du -shc /*
/var が58GBくらい使っていました…..
さらにduコマンドでvar配下を見てみましょう
sudo du -shc /var/* | sort -rn
/var/libが58GBの大半を占めているようです。
さらに、duコマンドで奥地に足を踏み入れてみましょう。
sudo du -shc /var/lib/* | sort -rn
/var/lib/dockerがとてつもなく肥大化している模様です…
いろいろなイメージやコンテナキャッシュがあるのでもしかしたらと思っていましたが、ここまで肥大化するとは思っても居ませんでした。
しかし、何に対処すればいいのか?が明確になったので、ここからはDocker との戦いを開始します。
2. Dockerの不要なデータを削除
不要なイメージを削除しましょう。使っていない不要なイメージがあるはずです。
docker image prune -f
と、思ったのですが表示された内容は「Total reclaimed space: 0B」と何も消すものが無いという状態….
こうなったら、奥の手を使うほかありません。ボリューム・イメージ・コンテナで不要なものを全て消し去るコマンドを実行します。
docker system prune -a
最後に容量が増えているか確認してみましょう…
df -h
これで、スッキリ年末の大掃除完了です。