I’ve been playing around with building Docker images and noticed I
had a few that had
<none> as both the repository and tag info.
% docker images REPOSITORY TAG IMAGE ID ... <none> <none> c1e0e48a03bb <none> <none> c8bf15029bc0
I tried to delete these untagged images, but couldn’t.
% docker rmi c1e0e48a03bb Error response from daemon: Conflict, cannot delete c1e0e48a03bb because the container 5f266c452a8b is using it, use -f to force
Ok, so we’ll try to force deletion.
% docker rmi -f c1e0e48a03bb Error response from daemon: No such id: b5dc67806c5f1e4abfa079a1c99f6d782e5696a25a3c9beb16043fe2e7164d19 2014/10/18 10:04:27 Error: failed to remove one or more images
Mmm … the original message said the image couldn’t be deleted because it was
in use by a container. I didn’t have any running containers as I
verified by doing
docker ps. But the issue is that docker holds
on to images even from exited containers. Once you realize that, then
this becomes much easier to resolve.
To delete all your exited containers.
% docker ps -a -q --filter "status=exited" | xargs docker rm
And to then delete all your untagged images.
% docker rmi `docker images -q --filter "dangling=true"`