🐳

Docker の容量が不足して no space left on device と出た際のメモ

2025/01/23に公開

問題

  • docker compose でビルドした際、Error response from daemon: failed to update store for object type *libnetwork.Endpoint: write /var/lib/docker/network/files/local-kv.db: no space left on deviceというエラー
  • 不要なデータを削除してストレージを空ける必要があるとのこと。

解決フロー

1. docker system df でストレージ容量を確認

$ docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          9         7         9.673GB   3.237GB (33%)
Containers      7         1         151.2MB   151MB (99%)
Local Volumes   84        4         80.8MB    13.6MB (16%)
Build Cache     79        0         311.3MB   311.3MB
  • Containers がめちゃくちゃ容量を圧迫してる…?

2. docker container pruneで停止中のコンテナを削除

$ docker container prune
  • WARNING! This will remove all stopped containers. Are you sure you want to continue? [y/N]と出てきて、Docker初心者は一瞬いいのかなと焦りましたがOK
  • docker-compose.yml に記述されているコンテナは、再度 docker compose up を実行すれば問題なく再作成されて実行される🙆

注意

  1. 永続化されていないデータは失われる可能性がある
  • コンテナ内に直接保存しているデータ(例えば、データベースの内容)が永続化されていない場合、停止したコンテナを削除するとそのデータも失われる
  • データが失われないように、docker-compose.yml で ボリュームをマウント(volumesセクション)しているか確認する
docker-compose.yml
services:
  db:
    image: postgres
    volumes:
      - db_data:/var/lib/postgresql/data
volumes:
  db_data:

参考

https://qiita.com/Shimo5296/items/4f4ade338c852ce30da7

https://info.drobe.co.jp/blog/engineering/docker-no-space-left-on-device

Discussion