A simple way to keep the latest n docker images
We recently had a CI server run out of space because it had too many images on it that were no longer relevant.
This handy command can be used to delete all but the newest number of images. Slap it into cron and never worry about your disk filling up from too many images
docker images --format "{{.Repository}}:{{.Tag}}" | grep my-fancy-image | tail --lines +21 | xargs --no-run-if-empty docker image rm
The example above will remove all but the latest 20 versions of my-fancy-image
.
Take note to add 1 to the amount you want to keep when passing that value to tail
, e.g. if you want to keep the latest 5, pass +6
to tail --lines
.