đł 1. Container Lifecycle & Health-Polling
Bevor Integrationstests oder App-Deployments starten, muss sichergestellt sein, dass Container wie PostgreSQL oder Redis wirklich ansprechbar sind:
# đŻ Status mit inspect abfragen:
status=$(docker inspect --format='{{.State.Health.Status}}' my-postgres)
# Mögliche Werte:
# - "starting" (Container bootet, Healthcheck lÀuft noch)
# - "healthy" (Healthcheck meldet Erfolg)
# - "unhealthy" (Dienst reagiert nicht korrekt)
đŸ 2. Das Docker Volume-Backup Pattern
Statt proprietÀre Pfade in /var/lib/docker/volumes anzufassen, mounted ein schlanker Helper-Container (z.B. Alpine) das Volume und erstellt das Backup:
[Host-System /backups] ââââââââ
â (tar.gz)
[Alpine Helper-Container] ââŽâ> tar czf /backup/db.tar.gz -C /volume_data .
âČ
â (-v db_data:/volume_data)
[Named Volume: db_data]
â (tar.gz)
[Alpine Helper-Container] ââŽâ> tar czf /backup/db.tar.gz -C /volume_data .
âČ
â (-v db_data:/volume_data)
[Named Volume: db_data]
đŠ Didaktische Analogie: Der mobile Umzugshelfer
Ein Volume ist wie ein abgeschlossener Lagerraum. Der ephemere Alpine-Container ist der Umzugshelfer, der kurz den Raum betritt, alles in Kartons packt (tar czf), die Kiste vor die LagertĂŒr stellt und sich danach sofort wieder in Luft auflöst (--rm).
đ 3. Cheat-Sheet: Docker Automation
| Befehl | Optionen / Format | Zweck |
|---|---|---|
docker inspect |
--format='{{.State.Health.Status}}' |
Liest gezielt Metadaten & Health-Status aus |
docker run --rm |
-v vol:/data -v $(pwd):/backup |
FĂŒhrt Einmal-Aufgaben aus & löscht Container danach |
docker system prune |
-f -a --filter "until=168h" |
Löscht ungenutzte Images, Layer & Container |
docker stats |
--no-stream --format json |
Gibt Momentaufnahme von CPU/RAM als JSON |