Last active
October 3, 2018 15:00
-
-
Save dazza-codes/c34a891d0b2ee6250a781ea413fcf297 to your computer and use it in GitHub Desktop.
Bash utility to clean docker containers and images
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Thanks to: | |
| # https://gist.github.com/bastman/5b57ddb3c11942094f8d0a97d461b430 | |
| # Volumes | |
| # https://github.com/chadoe/docker-cleanup-volumes | |
| #docker volume rm $(docker volume ls -qf dangling=true) | |
| #docker volume ls -qf dangling=true | xargs -r docker volume rm | |
| #docker volume rm $(docker volume ls -q -f 'dangling=true') | |
| #The "-f" parameter is necessary for describe the filter ('dangling=true') | |
| # Networks | |
| #docker network ls | |
| #docker network ls | grep "bridge" | |
| #docker network rm $(docker network ls | grep "bridge" | awk '/ / { print $1 }') | |
| # Images | |
| # http://stackoverflow.com/questions/32723111/how-to-remove-old-and-unused-docker-images | |
| # docker images | |
| # docker rmi $(docker images --filter "dangling=true" -q --no-trunc) | |
| # docker images | grep "none" | |
| # docker rmi $(docker images | grep "none" | awk '/ / { print $3 }') | |
| # Containers | |
| # http://stackoverflow.com/questions/32723111/how-to-remove-old-and-unused-docker-images | |
| # docker ps | |
| # docker ps -a | |
| # docker rm $(docker ps -qa --no-trunc --filter "status=exited") | |
| # Clean up containers and then images | |
| # docker rm $(docker ps -qa --no-trunc --filter "status=exited") | |
| # docker rmi $(docker images --filter "dangling=true" -q --no-trunc) | |
| # Docker VM | |
| # Resize disk space for docker vm | |
| # docker-machine create --driver virtualbox --virtualbox-disk-size "40000" default | |
| # pruning the networks https://docs.docker.com/engine/reference/commandline/network_prune/: | |
| # docker network prune | |
| # system prune https://docs.docker.com/engine/reference/commandline/system_prune/: | |
| # docker system info | |
| # docker system prune | |
| # docker system prune -a | |
| # docker system prune -a --volumes | |
| # Delete every docker container | |
| # Must be run first because images are attached to containers | |
| nuke_containers () { | |
| docker rm -f $(docker ps -a -q) | |
| } | |
| # Delete every Docker image | |
| # If any containers belong to an image, the image can't be deleted. | |
| # If any images are a base for another image, they are force-deleted. | |
| nuke_images () { | |
| docker rmi -f $(docker images -q) | |
| } | |
| usage() { | |
| cat <<- USAGE | |
| usage: $0 [option] | |
| options: | |
| -a | --all nuke all the containers and images | |
| -c | --containers nuke all the containers | |
| -i | --images nuke all the images | |
| -h | --help | |
| USAGE | |
| } | |
| case $1 in | |
| -a | --all ) nuke_containers && nuke_images | |
| exit | |
| ;; | |
| -c | --containers ) nuke_containers | |
| exit | |
| ;; | |
| -i | --images ) nuke_images | |
| exit | |
| ;; | |
| -h | --help ) usage | |
| exit | |
| ;; | |
| * ) usage | |
| exit 1 | |
| esac |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment