Docker Backup vor dem Update: So geht’s richtig
Docker Backup vor dem Update – Datenverlust vermeiden mit der richtigen Sicherungsstrategie
Ein vollständiges Volume-Backup vor dem Update ist die einzige Absicherung gegen Datenverlust — docker compose up -d schreibt sofort in dein Volume, noch bevor du weißt, ob das neue Image überhaupt funktioniert. Wer ausschließlich zustandslose Container ohne persistente Volumes betreibt, braucht das nicht — dort reicht ein Image-Tag-Wechsel.
Dieser Artikel ist Teil einer Grundlagen-Serie. Weitere Artikel:
- 📖 Docker Container updaten ohne Datenverlust (Übersicht)
- ➔ Docker Volumes erstellen und verwalten
- ➔ Docker Compose Container updaten
- ➔ Watchtower Docker automatisch updaten
- ➔ Docker Container Backup erstellen
- ➔ Portainer Container updaten
- ➔ Docker Container Rollback nach fehlgeschlagenem Update
Das Problem: Was beim Docker-Update wirklich passiert
docker compose pull gefolgt von docker compose up -d klingt harmlos. Der neue Container startet, bindet das bestehende Volume ein und beginnt sofort zu schreiben — Datenbankmigrationen, Schema-Änderungen, neue Konfigurationsformate. Läuft das Update schief, sind deine Daten im Volume bereits verändert. Ohne vorheriges Backup gibt es keinen Weg zurück.
Drei Dinge können dabei verloren gehen:
– Volumes — persistente Daten (Datenbanken, Uploads, Konfigurationen)
– docker-compose.yml und .env — Ports, Passwörter, Pfade. Klingt banal, ist aber der häufigste Grund warum ein Rollback scheitert.
– Das alte Image — ohne es kannst du den Container nicht auf den Vorstand zurücksetzen

Docker-Container-Anatomie: Image, Volume und Compose-Datei als drei getrennte Blöcke — was beim Update ersetzt wird und was erhalten bleibt
Entscheidung: Welche Backup-Methode für welches Setup
| Situation | Methode | Warum |
|---|---|---|
| Named Volume, beliebige Plattform | tar via Alpine-Container |
Funktioniert überall, kein Extra-Tool |
Bind Mount (./data:/app/data) |
cp -r oder tar direkt auf dem Host |
Volume liegt bereits als Ordner vor |
| PostgreSQL / MariaDB läuft | pg_dump / mysqldump im laufenden Container |
Konsistentes Backup ohne Downtime |
| Unraid AppData | AppData-Ordner /mnt/user/appdata/ sichern |
Alle Bind Mounts an einem Ort |
| Synology Container Manager | /volume1/docker/ sichern + Hyper Backup |
NAS-native Integration |
| Proxmox LXC mit Docker | Container stoppen, dann tar auf Volume-Pfad |
LXC-Snapshot bei laufender DB inkonsistent |
| Raspberry Pi | tar auf Volumes + dd / Imager für SD |
SD-Karten-Fehler häufiger als bei SSD |
| Windows 11 Angebot / Docker Desktop WSL2 | WSL2-Distro-Export + Volume-tar |
Volumes liegen in WSL2-Dateisystem |
Kurzfassung für die häufigsten Fälle:
- Named Volumes →
tarvia Alpine-Container (siehe Schritt 2) - Bind Mounts → direktes
cp -rauf dem Host reicht - Datenbank läuft → Dump-Befehl im laufenden Container, kein Stopp nötig
- Proxmox oder Unraid → kein VM-Snapshot als Ersatz für Volume-Backup (dazu gleich mehr)
- Portainer → erstellt keine Backups. Du musst manuell ran.

Backup-Entscheidungsbaum: Die richtige Methode für Named Volumes, Bind Mounts, Datenbanken und plattformspezifische Setups auf einen Blick
Setup: Vollständiges Backup vor dem Update — Schritt für Schritt
Schritt 1: Herausfinden, was gesichert werden muss
Zeigt dir exakt, was du sichern musst — Typ (Volume oder Bind Mount), Quellpfad auf dem Host, Zielpfad im Container. Vor jedem Update ausführen, nicht aus dem Gedächtnis arbeiten.

docker inspect im Terminal: Volumes und Bind Mounts eines Containers im JSON-Format — so erkennst du, was vor dem Update gesichert werden muss
Schritt 2: Container stoppen
Kurze Downtime ist besser als ein inkonsistentes Backup. Ausnahme: Datenbanken mit eigenem Dump-Befehl (siehe Schritt 3b).
Schritt 3a: Named Volume sichern
Das Alpine-Image startet kurz, bindet das Volume ein, packt alles in ein Archiv und verschwindet wieder. Das Ergebnis liegt im aktuellen Verzeichnis auf dem Host.
Schritt 3b: Datenbank-Dump im laufenden Betrieb (ohne Stopp)
Schritt 4: Compose-Datei und Umgebungsvariablen sichern
Schritt 5: Altes Image-Tag sichern (optional, aber empfohlen)
Schritt 6: Update durchführen
Vollständiger Update-Ablauf im Terminal: docker compose stop → tar-Backup → docker compose pull → docker compose up -d mit erfolgreicher Volume-Sicherung
Schritt 7: Rollback, wenn das Update fehlschlägt
Plattform-spezifische Hinweise
Unraid: AppData-Backup vor dem Update
Auf Unraid liegen Bind Mounts standardmäßig unter /mnt/user/appdata/containername/. Das ist dein primärer Sicherungspfad:
Das CA Backup/Restore Plugin automatisiert diesen Schritt für alle Container gleichzeitig. Wichtig: Named Volumes liegen separat unter /var/lib/docker/volumes/ und müssen zusätzlich gesichert werden — das Plugin erfasst sie nicht automatisch.
Synology Container Manager: Backup vor dem Update
Projektdaten liegen unter /volume1/docker/projektname/. Hyper Backup kann diesen Ordner einschließen:
Named Volumes auf Synology: /var/lib/docker/volumes/ — erfordert Root-Zugriff via SSH. Hyper Backup erfasst diesen Pfad nicht automatisch.
Proxmox LXC mit Docker: Volumes korrekt sichern
Ein Proxmox-Snapshot bei laufenden Docker-Containern ist kein vollwertiges Backup für Datenbankdaten — dazu gleich mehr unter den Irrtümern.
Raspberry Pi: SD-Karte und Docker-Volumes
SD-Karten unter Last produzieren häufiger Fehler als SSDs. Ein vollständiges Image als Fallback ist auf dem Raspberry Pi sinnvoller als auf anderen Plattformen — in meinem Test mit einem Pi 4 und einer günstigen Class-10-Karte hatte ich nach 8 Monaten Dauerbetrieb den ersten Dateisystemfehler. Seitdem läuft der Pi auf einer SSD via USB.
Docker Desktop / WSL2 auf Windows 11: Volumes sichern
Volumes liegen im WSL2-Dateisystem, nicht direkt unter Windows zugänglich:
Die 6 gefährlichsten Irrtümer beim Docker-Backup
Irrtum 1: docker commit sichert alles — auch die Volumes
docker commit fotografiert nur das Dateisystem innerhalb des Containers — Betriebssystem und installierte Programme. Alles in einem Volume (Datenbanken, Uploads, Konfigurationsdateien) bleibt dabei komplett außen vor.
Der Begriff klingt nach „alles festschreiben“ wie in Git. Docker zeigt nach dem Befehl eine Erfolgs-ID an — das erzeugt ein falsches Gefühl von Sicherheit.
Konkretes Beispiel: Nextcloud läuft, du machst vor dem Update docker commit, rollst danach zurück — die App startet wieder, aber alle Nutzerdaten sind weg. Die lagen im Volume, nicht im Container.
Irrtum 2: docker save sichert auch die Container-Daten
docker save exportiert nur das Image — die Vorlage, aus der Container gebaut werden. Die eigentlichen Laufzeitdaten (PostgreSQL-Datenbank deiner Gitea-Instanz, Konfiguration deines Home Assistant) liegen in Volumes und werden von docker save schlicht ignoriert.
| Befehl | Was wird gesichert | Was fehlt |
|---|---|---|
docker commit |
Container-Dateisystem (ohne Volumes) | Alle Volume-Daten |
docker save |
Image (Bauplan) | Alle Laufzeitdaten |
tar auf Volume-Pfad |
Volume-Daten | Image, Compose-Datei |
| Vollständiges Backup | Image + Volume + Compose + .env | — |
Irrtum 3: docker compose down + docker compose up ist ein Backup-Prozess
docker compose down stoppt und entfernt Container — ohne jede Sicherung. Volumes bleiben standardmäßig erhalten, aber wenn beim anschließenden Update etwas schiefläuft (Datenbankschema wird automatisch migriert und ist danach inkompatibel mit der alten Version), gibt es keinen Weg zurück.
Das Backup muss immer VOR dem down-Befehl und manuell erstellt werden.
Viele Anleitungen zeigen genau diese Abfolge als „Update-Prozess“, ohne den fehlenden Backup-Schritt zu erwähnen. Der Ablauf fühlt sich strukturiert an — ist aber kein Backup.
Irrtum 4: Portainer sichert Container-Daten automatisch
Portainer ist eine grafische Oberfläche zur Verwaltung von Docker — kein Backup-Tool. Es zeigt Container, Volumes und Logs übersichtlich an, erstellt aber zu keinem Zeitpunkt automatisch Sicherungen.
Wer sich auf Portainer als Sicherheitsnetz verlässt und dann ein Update einspielt, das die Datenbank zerschießt, schaut in Portainer auf eine leere oder fehlerhafte Instanz — ohne Rückfahrkarte. Besonders auf Synology DSM und Unraid, wo Portainer als zentrale Schaltzentrale beworben wird, entsteht dieser Irrglaube.
Irrtum 5: Ein Proxmox-VM-Snapshot reicht als Docker-Backup
Ein Snapshot des Hosts oder der VM kann inkonsistente Daten enthalten, wenn Docker-Container zum Zeitpunkt des Snapshots noch laufen. Datenbanken wie MySQL, PostgreSQL oder MariaDB schreiben Daten nicht sofort vollständig auf die Festplatte — ein Teil steckt noch im Arbeitsspeicher oder in offenen Transaktionen.
Ein Snapshot in diesem Moment ist wie ein Foto eines fahrenden Autos: Es sieht aus wie das Auto, aber die Räder sind unscharf. Nach der Wiederherstellung kann die Datenbank korrupt sein und sich weigern zu starten.
Lösung: Container stoppen, dann Snapshot — oder Datenbank-Dump im laufenden Betrieb via pg_dump / mysqldump.
Irrtum 6: Volumes werden beim Container-Löschen mitgelöscht — also muss ich sie nicht extra sichern
Docker trennt Volumes bewusst vom Container-Lebenszyklus. Beim Update-Prozess kann es passieren, dass ein Volume explizit mit dem Flag --volumes entfernt wird, oder dass ein neues Image ein anderes Volume-Schema erwartet und das alte Volume ignoriert. Die Daten sind dann zwar noch vorhanden, werden aber nicht mehr genutzt — und irgendwann doch gelöscht.
„Noch vorhanden“ ist nicht dasselbe wie „gesichert“.
Fehler-Matrix: Symptome, Ursachen, Fixes
| Symptom | Check | Bestätigung | Ursache | Fix |
|---|---|---|---|---|
| Container startet nach Update nicht | docker compose logs --tail=50 |
Fehlermeldung zu Datenbankschema oder fehlendem Config-Key | Neues Image erwartet anderes Schema oder neue Pflichtfelder in Config | Rollback auf altes Image + Volume-Backup einspielen; dann Migration manuell prüfen |
| Container startet, Daten fehlen | docker inspect container --format '{{range .Mounts}}{{.Source}}{{end}}' |
Volume-Pfad zeigt auf leeres oder falsches Verzeichnis | Neues Image nutzt anderen Volume-Namen oder Bind-Mount-Pfad | Altes Volume manuell einbinden; Compose-Datei auf alten Pfad zurücksetzen |
docker commit gemacht, Rollback schlägt fehl |
docker inspect image_id | grep Volumes |
Volumes-Feld leer oder zeigt nur Deklaration, keine Daten | docker commit sichert keine Volume-Daten |
Volume-Backup mit tar via Alpine-Container nachholen; bei Datenverlust: Backup aus externer Quelle |
tar-Backup lässt sich nicht wiederherstellen, Daten korrupt |
tar tzf backup.tar.gz zum Prüfen der Archiv-Integrität |
Archiv unvollständig oder Fehler beim Entpacken | Backup bei laufendem Container erstellt, Datenbank war mitten im Schreibvorgang | Container stoppen, neues Backup erstellen; für DB: pg_dump/mysqldump statt tar |
| Proxmox-Snapshot wiederhergestellt, Datenbank startet nicht | docker logs db_container |
„InnoDB: Database was not shut down normally“ oder ähnlich | Snapshot bei laufender DB — offene Transaktionen nicht abgeschlossen | innodb_force_recovery für MySQL/MariaDB; für PostgreSQL: pg_resetwal (Datenverlust möglich); künftig: DB stoppen vor Snapshot |
| Unraid-Update: AppData-Ordner leer nach Update | ls -la /mnt/user/appdata/containername/ |
Ordner existiert, ist aber leer oder fehlt | Container nutzt Named Volume statt Bind Mount in AppData | Named Volume separat unter /var/lib/docker/volumes/ sichern; nicht nur AppData-Ordner |
| WSL2 / Docker Desktop: Volume nicht auffindbar nach Windows-Update | wsl --list --verbose |
WSL2-Distro nicht mehr vorhanden oder zurückgesetzt | Windows-Update hat WSL2-Distro zurückgesetzt | wsl --import mit vorherigem wsl --export-Backup; Volumes neu aus tar-Backup einspielen |
.env-Datei nach Update weg, Container startet mit falschen Werten |
docker compose config |
Umgebungsvariablen zeigen Default-Werte statt eigene | .env nicht gesichert, beim Update überschrieben oder fehlt |
.env aus Backup zurückspielen; künftig: .env immer mit in Backup-Verzeichnis kopieren |
FAQ: Häufige Fragen zum Docker-Backup vor dem Update
Reicht docker commit als vollständiges Backup?
Nein. docker commit erstellt einen Snapshot des Container-Dateisystems — was dabei nicht gesichert wird: alle Daten in Volumes. Volumes leben außerhalb des Containers auf dem Host-System.
Vollständiges Backup bedeutet: Volume-Daten mit tar sichern plus docker-compose.yml und .env-Datei kopieren. docker commit ist höchstens ein Zusatz, kein Ersatz.
Was ist der Unterschied zwischen docker save und docker export beim Backup?
docker save exportiert ein Image (mit allen Layern und Tags) — geeignet, um ein Image auf einen anderen Host zu übertragen oder eine bestimmte Version zu archivieren.
docker export exportiert das Dateisystem eines laufenden Containers als flaches Tar-Archiv — ohne Layer-History, ohne Volumes. Für Backups vor Updates ist keiner der beiden Befehle ausreichend, weil beide keine Volume-Daten erfassen.
Kann ich Docker Volumes sichern, während der Container läuft?
Für Dateien und Konfigurationen: ja, mit Einschränkungen. Für Datenbanken: nur mit datenbankspezifischen Dump-Befehlen.
Ein tar auf ein aktives Datenbankverzeichnis kann inkonsistente Snapshots erzeugen — die Wiederherstellung schlägt dann still fehl oder die Daten sind korrupt. Für PostgreSQL und MariaDB/MySQL immer pg_dump bzw. mysqldump verwenden, die ein transaktionskonsistentes Backup im laufenden Betrieb erstellen.
Wie sichere ich Docker-Volumes auf Synology Container Manager vor einem Update?
Hyper Backup kann den /volume1/docker/-Ordner einschließen — aber Named Volumes unter /var/lib/docker/volumes/ müssen separat gesichert werden.
Wie sichere ich Docker AppData auf Unraid vor einem Update?
Named Volumes liegen separat unter /var/lib/docker/volumes/ und werden vom CA Backup/Restore Plugin nicht automatisch erfasst — manuell mit tar via Alpine-Container sichern.
Wie sichere ich Docker-Volumes in Proxmox LXC korrekt?
Ein Proxmox-Snapshot bei laufenden Docker-Containern ist für Datenbankdaten nicht zuverlässig — offene Transaktionen landen nicht vollständig auf der Festplatte. Entweder Container vor dem Snapshot stoppen oder Datenbank-Dump verwenden.
Wie sichere ich Docker-Volumes unter Windows 11 mit Docker Desktop / WSL2?
Was tun, wenn nach dem Update alle Container-Daten weg sind?
Wie führe ich docker-compose pull durch, ohne Datenverlust zu riskieren?
Der sichere Ablauf:
Erst wenn Logs und Status sauber sind, ist das Update abgeschlossen.
Fazit
Ein Docker-Backup vor dem Update besteht aus drei Teilen: Volume-tar, docker-compose.yml + .env kopieren, altes Image-Tag notieren. Wer das überspringt und auf docker commit, docker save, Portainer oder VM-Snapshots vertraut, hat beim nächsten fehlgeschlagenen Update keine Rückfahrkarte.
Unsere Empfehlungen


* Affiliate-Links – beim Kauf erhalten wir ggf. eine Provision.
Preisvergleich
| Produkt | smartkram | Fachhandel | Amazon | eBay |
|---|---|---|---|---|
| Raspberry Pi 4 | smartkram ↗ | reichelt elektronik DE ↗ | Amazon ↗ | eBay ↗ |
| Windows 11 | smartkram ↗ | — | Amazon ↗ | eBay ↗ |
* Affiliate-Links – beim Kauf erhalten wir ggf. eine Provision.
✍️ Autor: homeserverlab-Redaktion
🔄 Zuletzt aktualisiert: 9. Juni 2026







