Docker Composeのエラー対処法: Daemon Error – no space left on device

docker-compose実行時に表示される、「no space left on device」エラーについて。

本稿では、このエラーの原因と解決策について詳しく説明します。ディスク空き容量の確認方法や不要なDockerイメージの削除、Dockerデーモンの設定変更など、さまざまな対処方法を解説します。これにより、Docker Composeをスムーズに実行するための手助けとなることでしょう。

エラー内容

いつもどおり、docker-composeを実行してみるが、、、見慣れないErrorが表示された。

Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/****/merged: no space left on device

デバイスに空き容量が無い???

Docker Composeは、コンテナアプリケーションを定義し、複数のコンテナを一元的に管理するための非常に便利なツールです。しかし、時にはコンテナを起動する際に「error creating overlay mount to… no space left on device」といったエラーメッセージが表示されることがあります。このエラーは、Dockerデーモンがオーバーレイマウントを作成するために必要なディスク空き容量が不足していることを意味します。

PCの空き容量は?

大丈夫ですね。

Dockerのディスク使用量は?

Docker のディスク使用量を表示します。

docker system df コマンドで

 % docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 25 8 20.11GB 15.14GB (75%)
Containers 9 1 1.455GB 1.455GB (99%)
Local Volumes 51 4 16.52GB 16.3GB (98%)

ココらへんが影響しているようです。

対応

まずやってみたのは、Docker DesktopからVolumeの削除。

下記画面のとおり、CREATEDでソートしていくつか適当に削除してみました。

再度、Dockerの使用量を確認

% docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 25 8 20.11GB 15.14GB (75%)
Containers 9 4 1.479GB 560.8MB (37%)
Local Volumes 40 4 12.47GB 11.23GB (90%)

多少ですが、Volumesの割合も減りました。

そして、問題のdocker-composeを実行してみた所、無事実行出来ました。

更にDockerの使用量を削減する

上記対応で一旦は解決したのですが、まだまだ使用率が高い状態ですのでもう少し減らしておこうと思います。

コマンドを使って未使用コンテナデータを削除

コマンドはこちら。

docker system prune

そして、実行後の使用量は

 % docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 16 3 9.312GB 5.593GB (60%)
Containers 4 4 917.8MB 0B (0%)
Local Volumes 40 3 12.47GB 11.23GB (90%)

Containersがしっかりゼロになってますね。

コマンドを使って未使用のボリュームデータを削除

コマンドはこちら。

docker volume prune

そして、実行後の使用量は

% docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 16 3 9.312GB 5.593GB (60%)
Containers 4 4 917.8MB 0B (0%)
Local Volumes 3 3 1.235GB 0B (0%)

Volumesもしっかり減りました。

恒久対応も必要?

今回はしっかり削除しておいたので、同じペースなら1年ぐらいは何もなく使っていけそうです。

が、恒久対応も必要かと思いますので、調べておこうと思います。