ある日Dockerを立ち上げようとすると下記のようなエラーに初めて出会った。
write /var/lib/docker/overlay2/ほにゃらら/diff/db/log/mysql/mysqld.log: no space left on device
なにやらディスクが圧迫されているよう。。。何が圧迫しているのか?
下記コマンドでdockerに関係するディスク使用状況を確認する。
docker system df
Dockerを使いまくっていて、いつの間にかLocal Volumesが使用率100%になっている!!
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 0 0 0B 0B
Containers 0 0 0B 0B
Local Volumes 202 0 24.56GB 24.56GB (100%)
Build Cache 676 0 23.62GB 23.62GB
今回は、下記コマンドでイメージ、コンテナ、ネットワークを一括削除(prune)する。
ボリュームも削除したい場合は、 --volumes
フラグが必要。
※ イメージ、コンテナ、ボリューム、ネットワークそれぞれを削除するコマンドもある。
Docker Docを参照
docker system prune --volumes
docker system df
でディスク使用状況を再度確認。
スッキリ
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 0 0 0B 0B
Containers 0 0 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
また、docker system prune
する時にデフォルトでは、確認プロンプトが表示される。
プロンプトを使わない場合は、 -f もしくは --force フラグで強制削除ができる
参考: