概要
docker compose
でビルドした際にfailed to solve: failed to prepare xxxxxxx: mkdir /var/lib/docker/overlay2/xxxxxxxxxx/work: no space left on device
というエラーが出た時の対処法についてまとめます
Dockerのストレージ使用量を調べる
以下を実行する
docker system df
実行すると次のように表示されるはずです。
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 27 12 17.09GB 9.62GB (56%)
Containers 12 12 1.072GB 0B (0%)
Local Volumes 105 4 14.2GB 13.75GB (96%)
Build Cache 138 0 1.622GB 1.622GB
ImageやLocal Volumesが圧迫しているのがわかる。
ボリュームやコンテナ、イメージ、ネットワークの削除
イメージの削除
タグを持たず、他のコンテナからも参照されないイメージを削除します
docker image prune
オプション | 説明 |
---|---|
-a |
既存のコンテナから使用されていないイメージを全て削除する |
-f --force
|
作業の続行確認をパスする |
--filter |
対象イメージの制限をかけることができる。 例) --filter "until=24h"
|
その他のフィルター表現:docker container prune リファレンス
コンテナの削除
docker container prune
オプション | 説明 |
---|---|
-f --force
|
作業の続行確認をパスする |
--filter |
対象イメージの制限をかけることができる。 例) --filter "until=24h"
|
その他のフィルター表現:docker container prune リファレンス
ボリュームの削除
docker volume prune
オプション | 説明 |
---|---|
-f --force
|
作業の続行確認をパスする |
--filter |
対象イメージの制限をかけることができる。 例) --filter "label!=keep"
|
その他のフィルター表現:docker container prune リファレンス
ネットワークの削除
docker network prune
オプション | 説明 |
---|---|
-f --force
|
作業の続行確認をパスする |
--filter |
対象イメージの制限をかけることができる。 例) --filter "until=24h"
|
その他のフィルター表現:docker container prune リファレンス
一括削除
docker system prune
オプション | 説明 |
---|---|
-f --force
|
作業の続行確認をパスする |
--volumes |
ボリュームも含めて削除 |
デフォルトではボリュームは削除されない
build cacheの削除
docker builder prune