Skip to content

Instantly share code, notes, and snippets.

@simukti
Created July 24, 2018 11:39
Show Gist options
  • Save simukti/5e93b1d52f9bc6a46a40ee16774cb946 to your computer and use it in GitHub Desktop.
Save simukti/5e93b1d52f9bc6a46a40ee16774cb946 to your computer and use it in GitHub Desktop.
Clean-up unused docker leftover stuff after you run docker build or docker-compose.
#!/usr/bin/env bash
## reference: https://gist.github.com/bastman/5b57ddb3c11942094f8d0a97d461b430
## cleanup unused networks
echo "--- CLEANUP UNUSED NETWORKS ---"
##unused_network=$(docker network ls | awk '$3 == "bridge" && $2 != "bridge" { print $1 }')
unused_network=$(docker network ls | grep "bridge" | awk '/ / { print $1 }')
if [[ $unused_network ]] && (( $(grep -c . <<<"$unused_network") > 1 )); then
## this will not delete active network and predefined network
echo -e "$unused_network"
docker network rm $unused_network
else
echo "NONE"
fi
## cleanup unused volumes
echo "--- CLEANUP UNUSED VOLUMES ---"
unused_vols=$(docker volume ls -qf dangling=true)
if [[ $unused_vols ]]; then
echo -e "$unused_vols"
docker volume rm $unused_vols
else
echo "NONE"
fi
## cleanup unused containers
echo "--- CLEANUP UNUSED CONTAINERS ---"
unused_containers=$(docker ps -qa --no-trunc --filter "status=exited")
if [[ $unused_containers ]]; then
echo -e "$unused_containers"
docker rm $unused_containers
else
echo "NONE"
fi
## cleanup unused images
echo "--- CLEANUP UNUSED IMAGES ---"
## unused_images=$(docker images --filter "dangling=true" -q --no-trunc)
unused_images=$(docker images | grep "<none>" | awk '/ / { print $3 }')
if [[ $unused_images ]]; then
echo -e "$unused_images"
docker rmi $unused_images
else
echo "NONE"
fi
@fa-fajrin
Copy link

This is a great bash to clean up the unused images. Very useful!

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