Skip to content

Instantly share code, notes, and snippets.

Last active July 20, 2021 15:37
Show Gist options
  • Star 50 You must be signed in to star a gist
  • Fork 14 You must be signed in to fork a gist
  • Save michaelneale/1366325a7737c4cb80b0 to your computer and use it in GitHub Desktop.
Save michaelneale/1366325a7737c4cb80b0 to your computer and use it in GitHub Desktop.
remove_dangling() {
echo "Removing dangling images ..."
docker rmi $(docker images -f dangling=true -q)
remove_stopped_containers() {
echo "Removing stopped containers ..."
docker rm $(docker ps -qa)
case $1 in
read -p "Are you sure you want to remove all stopped containers?" -n 1 -r
echo #
if [[ $REPLY =~ ^[Yy]$ ]]
echo "
usage: docker-clean containers|images
containers - removes all stopped containers it can.
images - removes dangling (un-needed) image layers - images you no longer need
Copy link

docker rmi $(docker images -f dangling=true -q), no ? :)

Copy link

@twillouer ah yes - for some reason that didn't make it from my local copy - well spotted. Corrected.

Copy link

thanks to @huntc for mentioning "dangling" to be (I would have though it was a joke).

Copy link

I ran into this issue doing what seems to be fairly lightweight stuff. In my case, even after cleaning out all containers and images, I still have about 25Gb of images according to docker (docker images -a | tr -s ' ' | cut -d ' ' -f 7 | awk '{s+=$1} END {print s}'). That must not be totally accurate though because VB says that the VMDK image is 19Gb.

Going to try since apparently those VMDK images are not resizable.

Copy link


docker rmi $(docker images -f dangling=true -q)


docker rmi -f $(docker images dangling=true -q)

Seems to me the -f is to force the delete of the image id.

Copy link

tupy commented May 19, 2016

Also remove volumes with docker volume rm $(docker volume ls -qf dangling=true)

Copy link

kenyee commented Dec 29, 2016

Be sure to do what tupy suggested only after you get your current containers running so you don't pure volumes that they might be using if they weren't running ;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment