no space left on device エラーはDocker使用量が多いのが原因

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

対応内容をまとめておきます。

エラー内容

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

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

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

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年ぐらいは何もなく使っていけそうです。

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