/ Docker

The ultimate Docker cleanup command

If you use Docker (native and especially machine, which has only limited virtual disk space on macOS), you might have some problems with all those images you build during development polluting your hard drive. Good thing is, if you want all of that stuff gone, there is a neat oneliner that will do exactly that!

$ docker rm -f $(docker ps -a -q) && docker rmi -f $(docker images -q)

This oneliner consists of two commands. The latter one will only be executed if the first one is successful (due to && being used instead of just & or ;). Those two commands each consist of two commands themselves and I'll explain here what they do in the sequence they are executed:

  • docker ps -a -q prints out all container ids that are present on your system. The $() syntax takes it's output as parameter for the next command
  • docker rm -f removes the container passed as argument and the -f flag makes it stop and delete running containers. (So if you want to keep the running ones, omit this)
  • Now the shell checks if the command was executed successful. If yes it resumes, if not it stops.
  • docker images -q prints out all of the image ids present on your system. We again take it's output as parameter for the next one
  • docker rmi -f removes all images present on your system. This includes all intermediate layers!

After you executed this script, all of the conatiners and images are deleted and you have a nice and clean environment.

I hope this post is helpful to you :)

Lerk

Lerk

vegan, programmer, musician, critical of everything & worst nightmare of every sysop.

Read More