#!/bin/bash # Docker Cleanup-Skript # Räumt nicht verwendete Docker-Images, Container, Volumes und Build-Cache auf set -e echo "🧹 Docker Cleanup..." echo "" # Zeige aktuellen Speicherverbrauch echo "📊 Aktueller Docker-Speicherverbrauch:" docker system df echo "" # Frage nach Bestätigung (falls interaktiv) if [ -t 0 ]; then echo "⚠️ Dies wird folgende Ressourcen entfernen:" echo " - Alle nicht verwendeten Images" echo " - Alle gestoppten Container" echo " - Alle nicht verwendeten Netzwerke" echo " - Build-Cache" echo "" echo "Möchtest du fortfahren? (j/n)" read -r response if [ "$response" != "j" ] && [ "$response" != "J" ]; then echo "❌ Abgebrochen." exit 0 fi fi # 1. Entferne gestoppte Container echo "🗑️ Entferne gestoppte Container..." STOPPED_CONTAINERS=$(docker ps -a -q -f status=exited | wc -l) if [ "$STOPPED_CONTAINERS" -gt 0 ]; then docker container prune -f echo "✅ Gestoppte Container entfernt" else echo " Keine gestoppten Container gefunden" fi echo "" # 2. Entferne nicht verwendete Images echo "🗑️ Entferne nicht verwendete Images..." docker image prune -a -f echo "✅ Nicht verwendete Images entfernt" echo "" # 3. Entferne nicht verwendete Netzwerke echo "🗑️ Entferne nicht verwendete Netzwerke..." docker network prune -f echo "✅ Nicht verwendete Netzwerke entfernt" echo "" # 4. Entferne Build-Cache (optional, kann lange dauern) echo "🗑️ Entferne Build-Cache..." docker builder prune -f echo "✅ Build-Cache entfernt" echo "" # Zeige neuen Speicherverbrauch echo "📊 Neuer Docker-Speicherverbrauch:" docker system df echo "" # Zeige verfügbaren Speicherplatz echo "💾 Verfügbarer Speicherplatz:" df -h / | tail -1 | awk '{print " Gesamt: " $2 ", Verfügbar: " $4 ", Belegt: " $5}' echo "" echo "✅ Cleanup abgeschlossen!"