no space left on deviceエラーの対応


> docker exec front df -i
Filesystem                  Inodes   IUsed               IFree IUse% Mounted on
overlay                    3907584 3907459                 125  100% /
# skip
osxfs          9223372036854775807 3103606 9223372036851672201    1% /root/dev
/dev/sda1                  3907584 3907459                 125  100% /etc/hosts
# skip

TL;DR;

  • Inodes利用率100%になるとコンテナの立ち上げができなくなる
  • が一番効果あった
docker volume rm `docker volume ls -q -f dangling=true`

今回の no space left on device の原因

  • 初回 docker-compose up 時に遭遇
  • 原因がディスク容量不足ではない
    • 仮に容量不足ならdocker.appの設定を変更するだけなので話が早い
  • コンテナの中にINODESを食い尽くしているファイルは特に無い
    • フレッシュなオフィシャルイメージでコンテナ作る時点でInode使用率100%になっていたケース
    • そもそも削れるファイルが無いケース

volume削除

一番効果あった。自分の場合は30%以上減らせた

# activeでないvolumesを確認する
docker system df
# dangling volumeのリストを確認
docker volume ls -q -f dangling=true
# 参照されてないvolumesを削除
docker volume rm `docker volume ls -q -f dangling=true`

コンテナ削除

若干効果あった。自分の場合は利用率を10%弱減らせた

docker rm xxxx使ってないコンテナxxxxx

イメージ削除

わずかに効果あり。1-2%削減
docker system dfでactiveでないイメージが相当ある場合は試してもよいかもしれない

# danglingイメージや、<none> 表示になってるイメージを削除
docker rmi xxxx使ってないイメージxxxxx