Skip to content

Instantly share code, notes, and snippets.

@dazza-codes
Created December 6, 2022 00:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dazza-codes/8bc7bcd552c194cd4532516822a6021f to your computer and use it in GitHub Desktop.
Save dazza-codes/8bc7bcd552c194cd4532516822a6021f to your computer and use it in GitHub Desktop.
Docker Clean
#!/usr/bin/env bash
#===============================================================================
#
# FILE: docker_clean.sh
#
# USAGE: ./docker_clean.sh
#
# DESCRIPTION:
#
# OPTIONS: ---
# REQUIREMENTS: ---
# BUGS: ---
# NOTES: ---
# AUTHOR: Darren Weber, dweber.consulting@gmail.com
# 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