-
-
Save michaelneale/1366325a7737c4cb80b0 to your computer and use it in GitHub Desktop.
#!/bin/sh | |
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 | |
images) | |
remove_dangling | |
;; | |
containers) | |
read -p "Are you sure you want to remove all stopped containers?" -n 1 -r | |
echo # | |
if [[ $REPLY =~ ^[Yy]$ ]] | |
then | |
remove_stopped_containers | |
fi | |
;; | |
*) | |
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 | |
" | |
;; | |
esac |
also docker run --rm to stop them building up...
docker rmi $(docker images -f dangling=true -q), no ? :)
@twillouer ah yes - for some reason that didn't make it from my local copy - well spotted. Corrected.
thanks to @huntc for mentioning "dangling" to be (I would have though it was a joke).
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 https://docs.docker.com/articles/b2d_volume_resize/ since apparently those VMDK images are not resizable.
Should
docker rmi $(docker images -f dangling=true -q)
be
docker rmi -f $(docker images dangling=true -q)
Seems to me the -f is to force the delete of the image id.
Also remove volumes with docker volume rm $(docker volume ls -qf dangling=true)
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 ;-)
Thanks mate :)
Though a bigger disk does sound nice...