Untitled
public
Jun 13, 2024
Never
18
1 #!/bin/bash 2 3 # Ustawienie daty przedziału na 2 tygodnie wstecz 4 DATE=$(date -d '2 weeks ago' +%Y-%m-%dT%H:%M:%S) 5 6 # Wylistowanie wszystkich obrazów używanych przez serwisy w klastrze 7 USED_IMAGES=$(docker service ls --format "{{.Image}}" | sort | uniq) 8 9 # Wylistowanie obrazów, które nie są aktualnie używane i są starsze niż 2 tygodnie 10 IMAGES=$(docker images --filter "dangling=false" --format "{{.Repository}}:{{.Tag}} {{.CreatedAt}}" | awk -v date="$DATE" '$2 < date {print $1}') 11 12 # Przechodzenie przez listę obrazów i sprawdzanie, czy są używane przez serwisy w klastrze 13 for IMAGE in $IMAGES; do 14 if ! echo "${USED_IMAGES}" | grep -q "${IMAGE}"; then 15 echo "Usuwanie obrazu: $IMAGE" 16 docker rmi $IMAGE 17 else 18 echo "Obraz ${IMAGE} jest używany przez serwisy w klastrze i nie będzie usunięty." 19 fi 20 done