Run docker system prune --volumes When Getting 'no space left on device' Error with Amazon ECS + Docker

Tadashi Shigeoka ·  Tue, July 30, 2019

This article introduces how to fix the no space left on device error when using Amazon ECS + Docker.

Docker

Background: no space left on device

A no space left on device error occurred in Amazon ECS, preventing new tasks from starting.

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

Solution: Amazon ECS no space left on device Error

To conclude, just run the following command that bulk deletes unused docker images, volumes, etc., and you’re done.

docker system prune --volumes

未使用な Docker image, container, volume, network, cache などの一括削除方法 | CodeNote (How to Bulk Delete Unused Docker Images, Containers, Volumes, Networks, and Cache | CodeNote)

Individual Execution: docker volume prune, docker image prune

no space left on device Error

When I tried to delete unused images first, the following error occurred. The error message is broken into lines with : for readability, but it’s actually 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

Delete in Order: volume → image

  1. Delete unused docker volumes
  2. Delete unused docker images

Following this procedure succeeded without errors.

docker volume prune
docker volume ls -qf dangling=true
# Confirm that no unused volumes are output
docker image prune
docker ps -aq --filter status=exited
# Confirm that no unused images are output

That’s all from the Gemba on running docker system prune —volumes when getting a no space left on device error in Amazon ECS.