cfg/bin/docker-clean
Knut Ahlers 50b0aa2464
Update docker-clean script
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2018-01-13 19:05:15 +01:00

20 lines
803 B
Bash
Executable file

#!/bin/bash
set -euo pipefail
if [ -e "${HOME}/bin/script_framework.sh" ]; then
source "${HOME}/bin/script_framework.sh"
else
function step { echo $@; }
fi
step "Removing containers created / exited >= ~1h ago..."
CONTAINERS=$(docker ps -a | awk '/(hours?|days?|weeks?|months?) ago\s+(Created|Exited)/{ print $1 }' | xargs)
[ -n "${CONTAINERS}" ] && docker rm ${CONTAINERS}
step "Removing images missing repository or tag..."
IMGS=$(docker images | awk '/<none>.*(hours?|days?|weeks?|months?) ago/{ print $3 }' | xargs)
[ -n "${IMGS}" ] && docker rmi ${IMGS}
step "Removing images with tags not being used (used images will throw errors, that's normal)..."
IMGS=$(docker images | awk '/(hours?|days?|weeks?|months?) ago/{ print $1":"$2 }' | xargs)
[ -n "${IMGS}" ] && docker rmi ${IMGS} || true