Skip to content
BotServBotServ
DockerBackupVolumesComposersyncRestore

Docker-Container und Volumes sichern

Backups von Docker-Containern, Volumes und Compose-Stacks erstellen. Automatisierung, Offsite und Wiederherstellung.

S

schutzgeist

3 min read
Docker-Container und Volumes sichern

Docker-Container und Volumes sichern

Was dieser Artikel über Docker-Backup behandelt

  • Warum Backups für Docker-Container wichtig sind.
  • Wie man Volumes manuell und automatisch sichert.
  • Wie man Compose-Konfigurationen und Umgebungsvariablen sichert.
  • Wie man Backups verschlüsselt und offsite speichert.
  • Wiederherstellung und typische Fehler.

Einleitung: Docker-Container und Volumes sichern

Docker-Container selbst sind zustandslos. Daten, Konfigurationen und Workloads leben aber in Volumes, Bind Mounts und Compose-Dateien. Wer diese nicht sichert, verliert bei einem Hardwaredefekt, einem versehentlichen Löschen oder einem fehlerhaften Update alles. Ein gutes Backup-Konzept umfasst daher Volumes, Compose-Dateien, .env-Dateien, Images und regelmässige Offsite-Kopien.

Dieser Artikel zeigt, wie man Docker-Backups strukturiert, automatisiert und wiederherstellt.

Wichtige Begriffe

  • Volume-Backup: Sicherung eines Docker-Volumes.
  • Bind Mount Backup: Sicherung eines auf dem Host eingebundenen Verzeichnisses.
  • Compose-Backup: Sicherung der YAML-Datei und Umgebungsvariablen.
  • Offsite: Speicherung ausserhalb des eigenen Servers.
  • Snapshot: Zeitpunktbezogene Kopie des Systems.
  • Restore: Wiederherstellung aus einem Backup.
  • Retention: Aufbewahrungsdauer von Backups.
  • rsync: Tool für inkrementelle Sicherungen.

Was muss gesichert werden?

KomponenteBegründung
Docker VolumesEnthalten Datenbanken, Modelle, Konfigurationen.
Bind MountsPersistente Daten, die auf dem Host liegen.
compose.yamlDefiniert den gesamten Stack.
.env-DateienSecrets und Konfigurationen.
Docker ImagesFür schnelle Wiederherstellung ohne Neudownload.
Container-EinstellungenLabels, Netzwerke, Umgebungsvariablen.

Manuelles Volume-Backup

Ein einfacher Weg ist ein temporärer Container, der das Volume einhängt:

docker run --rm -v ollama-data:/data -v $(pwd):/backup alpine tar -czf /backup/ollama-data.tar.gz -C /data .

Das erzeugt eine komprimierte Datei im aktuellen Verzeichnis.

Manuelles Restore

docker run --rm -v ollama-data:/data -v $(pwd):/backup alpine tar -xzf /backup/ollama-data.tar.gz -C /data

Wichtig: Das Zielvolume muss existieren oder vorher erstellt werden.

Bind Mounts sichern

Bind Mounts liegen als normale Verzeichnisse auf dem Host. Sie lassen sich mit rsync oder tar sichern:

rsync -av /opt/ollama-data /backup/ollama-data/

Compose-Dateien und Secrets

Ein zentrales Verzeichnis für alle Compose-Projekte erleichtert Backups:

rsync -av /opt/docker-compose/ /backup/docker-compose/

Darin sollten compose.yaml, .env-Dateien und Konfigurationen liegen. .env-Dateien enthalten Secrets und sollten verschlüsselt oder besonders geschützt werden.

Automatisierte Backups

Ein Bash-Skript für regelmässige Sicherungen:

#!/bin/bash
set -e

BACKUP_DIR="/backup/docker/$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"

# Volumes
for volume in ollama-data pg-data open-webui-data; do
  docker run --rm -v "$volume":/data -v "$BACKUP_DIR":/backup alpine \
    tar -czf "/backup/$volume.tar.gz" -C /data .
done

# Compose-Projekte
rsync -av /opt/docker-compose/ "$BACKUP_DIR/docker-compose/"

# Logs
echo "Backup erstellt: $BACKUP_DIR" >> /var/log/docker-backup.log

Cronjob

0 3 * * * /usr/local/bin/backup-docker.sh >> /var/log/docker-backup.log 2>&1

Offsite und Verschlüsselung

Backups sollten nicht nur lokal liegen. Möglichkeiten:

  • Externe Festplatte.
  • NAS oder Synology.
  • Cloud-Speicher via rclone.
  • S3-kompatible Objektspeicher.
  • Tailscale-Node im entfernten Netzwerk.

Verschlüsselung mit Restic:

restic -r /mnt/backup-repo backup /backup/docker
restic -r /mnt/backup-repo snapshots

Backup einer laufenden Datenbank

Datenbanken sollten konsistent gesichert werden. Besser als reines Kopieren ist ein Datenbank-Dump:

docker exec postgres pg_dumpall -U admin > backup.sql

Für SQLite kann man das Datenbankfile kopieren, solange keine Transaktion aktiv ist.

Restore eines gesamten Stacks

  1. Docker installieren.
  2. Backups auf den neuen Host übertragen.
  3. Volumes wiederherstellen.
  4. Compose-Projekte an den richtigen Ort kopieren.
  5. docker compose up -d ausführen.

Backup-Strategien

  • 3-2-1 Regel: Drei Kopien, zwei Medien, eine Kopie ausser Haus.
  • Inkrementell: Nur geänderte Daten sichern.
  • Snapshot vor Updates: Vor jedem grossen Update ein Backup.
  • Test-Restore: Regelmässig prüfen, ob Backups funktionieren.
  • Monitoring: Backup-Erfolg protokollieren und Alarme bei Fehlern.

Typische Stolpersteine

  • Container wird nicht gesichert: Container sind zustandslos, Volumes sind entscheidend.
  • Datenbanken im Betrieb kopieren: Inkonsistente Backups.
  • Secrets unverschlüsselt: .env-Dateien enthalten Passwörter.
  • Zu wenig Retention: Alte Backups werden nicht gelöscht, Speicher läuft voll.
  • Kein Restore getestet: Backup funktioniert, Restore nicht.
  • Backup liegt nur lokal: Bei Hardwareausfall verloren.

FAQ: Docker-Backup

Soll ich ganze Container sichern? Nein, Volumes und Compose-Dateien sichern. Container lassen sich neu erstellen.

Wie oft sollte ich sichern? Täglich für aktive Daten, wöchentlich für statische Konfigurationen.

Sind Docker-Volumes-Backups portabel? Ja, wenn sie auf ein gleichartiges Zielsystem übertragen werden.

Wie sichere ich Secrets? Verschlüsselt oder in einem Password-Manager.

Was ist die 3-2-1 Regel? Drei Kopien, zwei verschiedene Speichermedien, eine Kopie ausser Haus.

Quellen und weiterführende Literatur

Zusammenfassung: Docker-Container und Volumes sichern

Backups von Docker-Setups konzentrieren sich auf Volumes, Bind Mounts, Compose-Dateien und Umgebungsvariablen. Manuelle Sicherungen sind mit tar und rsync schnell gemacht, automatisierte Backups per Cronjob sind für den produktiven Betrieb notwendig. Wichtig sind konsistente Datenbank-Dumps, Verschlüsselung von Secrets, Offsite-Speicher und regelmässige Restore-Tests. Wer die 3-2-1-Regel beachtet, ist vor Datenverlust deutlich besser geschützt.

Zurück zum KI Blog
Share:

Ähnliche Beiträge