I always forget to pass the
--rm flag when running command line tools with Docker. This means that I end up with a large history of exited containers that I no longer need.
There's plenty of information out there about how to clean up all stopped containers, or all unused images. I wanted to delete all stopped containers with a specific tag. Here's how to do it:
docker rm $(docker container ls -a -q --filter ancestor=image-name:tag --filter status=exited)
This works thanks to the filtering capabilities when combined with the
-q option to output only container IDs. These are then fed in to
docker rm to remove all images with that tag that are in the