Created
December 6, 2022 00:55
-
-
Save dazza-codes/8bc7bcd552c194cd4532516822a6021f to your computer and use it in GitHub Desktop.
Docker Clean
This file contains 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
#!/usr/bin/env bash | |
#=============================================================================== | |
# | |
# FILE: docker_clean.sh | |
# | |
# USAGE: ./docker_clean.sh | |
# | |
# DESCRIPTION: | |
# | |
# OPTIONS: --- | |
# REQUIREMENTS: --- | |
# BUGS: --- | |
# NOTES: --- | |
# AUTHOR: Darren Weber, [email protected] | |
# VERSION: 1.0 | |
# CREATED: 10/02/2018 06:23:06 PM PDT | |
# REVISION: --- | |
#=============================================================================== | |
# 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