Docker-Container aktualisieren
Was dieser Artikel über Docker-Updates behandelt
- Wie Container-Updates funktionieren.
- Wie man Images aktualisiert und Container neu erstellt.
- Wie man Rollbacks und Versionen managt.
- Automatisierung mit Watchtower oder Skripten.
- Best Practices für sichere Updates.
Einleitung: Docker-Container aktualisieren
Docker-Container werden aus Images erstellt. Wenn ein Image aktualisiert wird, läuft der Container weiter mit der alten Version, bis er neu erstellt wird. Deshalb reicht ein docker pull allein nicht aus. Ein sauberer Update-Prozess holt das neue Image, stoppt den Container und startet ihn mit dem neuen Image wieder. Wer regelmässig aktualisiert, bekommt Sicherheitspatches und neue Features, muss aber auch mit Datenverlust und Inkompatibilitäten umgehen können.
Dieser Artikel zeigt, wie man Container sicher aktualisiert und Rollbacks vorbereitet.
Wichtige Begriffe
- Image: Vorlage für einen Container.
- Tag: Versionskennzeichnung eines Images.
- Pull: Herunterladen eines neuen Images.
- Recreate: Container neu erstellen mit aktuellem Image.
- Rollback: Rückkehr zu einer früheren Version.
- Downtime: Zeit, in der der Dienst nicht erreichbar ist.
- Backup: Sicherung vor dem Update.
- Watchtower: Tool zur automatischen Container-Aktualisierung.
Grundlagen: Pull und Recreate
docker pull ollama/ollama:latest
docker stop ollama
docker rm ollama
docker run -d --name ollama -v ollama-data:/root/.ollama -p 11434:11434 ollama/ollama:latest
Mit Compose:
docker compose pull
docker compose up -d
docker compose up -d erstellt Container neu, wenn sich das Image geändert hat.
Versionen und Tags
Statt latest sollten konkrete Tags verwendet werden:
image: ollama/ollama:0.3.12
Das erhöht die Reproduzierbarkeit und ermöglicht gezielte Rollbacks.
Backup vor dem Update
Vor wichtigen Updates sollten Volumes gesichert werden:
docker run --rm -v ollama-data:/data -v $(pwd):/backup alpine \
tar -czf /backup/ollama-data-pre-update.tar.gz -C /data .
Update-Skript
#!/bin/bash
set -e
SERVICE="ollama"
docker compose pull "$SERVICE"
docker compose up -d "$SERVICE"
docker image prune -f
Automatisierte Updates mit Watchtower
Watchtower ist ein Container, der andere Container überwacht und aktualisiert:
services:
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WATCHTOWER_POLL_INTERVAL=86400
- WATCHTOWER_CLEANUP=true
restart: unless-stopped
Mit WATCHTOWER_LABEL_ENABLE=true können nur bestimmte Container aktualisiert werden:
services:
app:
labels:
- "com.centurylinklabs.watchtower.enable=true"
Rolling Updates in Swarm
In Docker Swarm werden Updates ohne Downtime ausgerollt:
docker service update --image mein-image:2.0 mein_service
Rollback
Wenn das neue Image Probleme macht:
- Altes Image-Tag finden.
- Compose-Datei oder Run-Befehl anpassen.
- Container neu erstellen.
docker compose down
docker compose up -d
Mit fixem Tag:
image: ollama/ollama:0.3.10
Umgang mit grossen Updates
- Changelog lesen.
- Breaking Changes beachten.
- Testumgebung nutzen, wenn möglich.
- Backup vor Update.
- Healthcheck nach Update prüfen.
Log-Prüfung nach Update
docker logs -f ollama
docker ps
Aufräumen
Alte Images belegen Platz:
docker image prune -f
Dangling Images entfernen. Ungenutzte Volumes bleiben, aber werden geprüft.
Tipps
- Fixe Tags statt
latestfür kritische Dienste. - Regelmässig, aber nicht zu häufig aktualisieren.
- Update-Fenster festlegen.
- Downtime minimal halten.
- Monitoring und Alerts auf Update-Probleme einrichten.
- Backup-Strategie integrieren.
Typische Stolpersteine
latestverwendet: Unkontrollierte Updates.- Kein Backup: Datenverlust bei fehlerhaftem Update.
- Datenbank-Schema-Änderung: Neue Version bricht alte Daten.
- Fehlende Downtime-Planung: Dienst ist nicht erreichbar.
- Alte Images sammeln sich: Festplatte läuft voll.
- Update während Nutzung: Nutzer merken Unterbrechung.
Weiterführende Links und Infos
- BotServ.de Docker Compose
- BotServ.de Docker Backup
- BotServ.de Docker Volumes
- BotServ.de Docker Monitoring
FAQ: Docker-Updates
Wie oft sollte ich Container aktualisieren? Regelmässig, aber nicht bei jeder kleinen Änderung. Wichtige Sicherheitsupdates zeitnah.
Sollte ich latest verwenden?
Für Homelabs ok, für kritische Dienste fixe Tags.
Was ist Watchtower? Ein Tool, das Container automatisch aktualisiert.
Kann ein Update Daten löschen? Nur wenn Volumes nicht gesichert sind oder die neue Version inkompatibel ist.
Wie mache ich ein Rollback? Altes Image-Tag in der Compose-Datei setzen und neu starten.
Quellen und weiterführende Literatur
- Docker Compose Update: https://docs.docker.com/compose/reference/up/
- Watchtower: https://github.com/containrrr/watchtower
- Docker Image Prune: https://docs.docker.com/engine/reference/commandline/image_prune/
Zusammenfassung: Docker-Container aktualisieren
Docker-Updates sind einfach, wenn man weiss, wie pull, up -d und das Recreate zusammenwirken. Für produktive Dienste sollten fixe Tags, Backups und klare Rollback-Strategien zum Standard gehören. Tools wie Watchtower automatisieren Updates, verlangen aber besondere Aufmerksamkeit bei kritischen Containern. Wer regelmässig aktualisiert, Images aufräumt und Volumes sichert, hält den eigenen Stack sicher und aktuell.


