Improve docker-clean to avoid "in use" errors
Signed-off-by: Knut Ahlers <knut@ahlers.me>
This commit is contained in:
parent
2ad65f4512
commit
0c1efb0e64
1 changed files with 9 additions and 6 deletions
|
@ -11,10 +11,13 @@ step "Removing containers created / exited >= ~1h ago..."
|
||||||
CONTAINERS=$(docker ps -a | awk '/(hours?|days?|weeks?|months?) ago\s+(Created|Exited)/{ print $1 }' | xargs)
|
CONTAINERS=$(docker ps -a | awk '/(hours?|days?|weeks?|months?) ago\s+(Created|Exited)/{ print $1 }' | xargs)
|
||||||
[ -n "${CONTAINERS}" ] && docker rm ${CONTAINERS}
|
[ -n "${CONTAINERS}" ] && docker rm ${CONTAINERS}
|
||||||
|
|
||||||
step "Removing images missing repository or tag..."
|
step "Untagging all images not used by containers..."
|
||||||
IMGS=$(docker images | awk '/<none>.*(hours?|days?|weeks?|months?) ago/{ print $3 }' | xargs)
|
PS_OUTPUT=$(docker ps -a)
|
||||||
[ -n "${IMGS}" ] && docker rmi ${IMGS}
|
for img in $(docker images | awk '/^[a-z].*(hours?|days?|weeks?|months?) ago/{ print $1":"$2 }' | grep -v '<none>' | sort | uniq); do
|
||||||
|
if ! ( echo "${PS_OUTPUT}" | grep -q "\s${img}\s" ); then
|
||||||
|
docker rmi --no-prune "${img}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
step "Removing images with tags not being used (used images will throw errors, that's normal)..."
|
step "Removing dangling images..."
|
||||||
IMGS=$(docker images | awk '/(hours?|days?|weeks?|months?) ago/{ print $1":"$2 }' | xargs)
|
docker image prune -f
|
||||||
[ -n "${IMGS}" ] && docker rmi ${IMGS} || true
|
|
||||||
|
|
Loading…
Reference in a new issue