Amazon ECS + Docker で no space left on device エラーが出たら docker system prune --volumes
Amazon ECS + Docker で no space left on device エラーが出たときの解決方法をご紹介します。
Amazon ECS で no space left on device エラーが発生して、新しくタスクが起動しなくなってました。
Error response from daemon:
create ecs-hoge-123-log-9eede4c79198a0d35b00:
error while creating volume path '/var/lib/docker/volumes/ecs-hoge-123-log-9eede4c79198a0d35b00/_data':
mkdir /var/lib/docker/volumes/ecs-hoge-123-log-9eede4c79198a0d35b00:
no space left on device
結論を書くと、未使用な docker image, volume などを一括削除する、以下のコマンドを実行するだけで完了です。
docker system prune --volumes
未使用な Docker image, container, volume, network, cache などの一括削除方法 | CodeNote
先に、未使用な image を削除すると以下のようなエラーが発生しました。エラーメッセージは読みやすさのため : で改行してますが、実際は 1 line です。
$ docker image prune
Error response from daemon:
container 651ea642b4718a09b204807761ea854ecfcdcfa832df729c6ce1264601d3ddb4:
driver "devicemapper" failed to remove root filesystem:
failed to remove device 7f1c7f87e921d23749e673fda554ab67931c186882d44bf74b78f2b2fc99efea:
devmapper: Error saving transaction metadata:
devmapper: Error creating metadata file:
open /var/lib/docker/devicemapper/metadata/.tmp929441300:
no space left on device
という手順ならエラー発生すること無く、成功しました。
docker volume prune
docker volume ls -qf dangling=true
# 未使用な volume が何も出力されないことを確認する
docker image prune
docker ps -aq --filter status=exited
# 未使用な image は何も出力されないことを確認する
以上、Amazon ECS で no space left on device エラーが出たら docker system prune —volumes していきたい、現場からお送りしました。