Backup in flüchtigen Umgebungen Daten in Docker-Containern wiederherstellen

Von Thomas Joos 4 min Lesedauer

Anbieter zum Thema

Container und deren Daten sind flüchtig. Um diese bei einem Neustart zu behalten, sind eine Sicherung sowie eine strukturierte Vorgehensweise bei der Wiederherstellung notwendig.

Backup in flüchtigen Container-Umgebungen muss gelernt sein.  (Bild:  Annika - stock.adobe.com)
Backup in flüchtigen Container-Umgebungen muss gelernt sein.
(Bild: Annika - stock.adobe.com)

Container sind generell flüchtig. Im Gegensatz zu Servern verlieren sie beim Neustart ihre Daten. Daher sollten die Files regelmäßig gesichert werden. Um die Datensicherheit zu gewährleisten, kommen Docker-Volumes zum Einsatz. In ihnen speichern Container und die darin laufenden Workloads ihre Daten. Diese Daten sind mit Containern verbunden und bleiben auch bei einem Neustart erhalten.

Bildergalerie

Docker-Volumes richtig sichern

Neben den Container-Images und den Konfigurationsdateien spielt die Sicherung von Docker-Volumes eine wichtige Rolle. Um eine effiziente und zuverlässige Backup-Strategie zu gewährleisten, sind spezifische Aspekte zu berücksichtigen. Zunächst ist die Lokalisierung der Docker-Volumes essenziell. Docker speichert Volumes standardmäßig in einem bestimmten Verzeichnis auf dem Host-System, welches identifiziert werden muss.

Für die Sicherung sollten regelmäßige Snapshots der Volumes erstellt werden. Inkrementelle Backups sind hierbei hilfreich, um Speicherplatz zu sparen und die Effizienz zu steigern. Bei Datenbanken oder anderen dienstspezifischen Volumes ist es notwendig, konsistente Zustände zu sichern, was oft über spezielle Backup-Tools oder -Skripte der jeweiligen Dienste erreicht wird. Die Sicherung der Metadaten der Volumes ist ebenfalls von Bedeutung, um bei einer Wiederherstellung alle relevanten Informationen zur Verfügung zu haben. Zudem sollte die Datensicherung automatisiert und regelmäßig durchgeführt werden, um den Verlust von Daten zu minimieren. Die Backup-Files speichert man bestenfalls außerhalb des Host-Systems, um Sicherheit gegenüber Systemausfällen zu gewährleisten.

Sicherung und Wiederherstellung von Docker-Volumes unter Linux

Für die Sicherung von Docker-Volumes unter Linux können mehrere Bordmittel verwendet werden. Zwei gängige Methoden sind:

Tar-Archivierung: Die Daten innerhalb des Docker Volumes werden in ein Tar-Archiv gepackt. Dies wird mit dem Befehl „docker run --rm -v [Volume-Name]:/data -v $(pwd):/backup ubuntu tar czvf /backup/backup.tar.gz /data“ durchgeführt. Dabei wird ein Container erstellt, der auf das zu sichernde Volume zugreift und ein Tar-Archiv im aktuellen Verzeichnis auf dem Host-System erstellt.

rsync: Ein weiteres Tool ist „rsync“ für die inkrementelle Sicherung. Dieses Tool synchronisiert die Daten zwischen dem Docker Volume und einem Sicherungsverzeichnis auf dem Host. Der Befehl „rsync -avzh /var/lib/docker/volumes/[Volume-Name]/_data/ /path/to/backup/“ kopiert die Daten aus dem Volume in das Backup-Verzeichnis.

Die gesicherten Daten sollten mit einem Backup-Tool gesichert werden, welches am besten den ganzen Host mit allen Containern und deren Konfigurationsdateien sichert. Das erleichtert die Wiederherstellung deutlich.

Die Wiederherstellung der Daten aus dem Backup erfolgt in umgekehrter Reihenfolge:

Wiederherstellung aus Tar-Archiv: Das Tar-Archiv kann durch den Befehl „docker run --rm -v [Volume-Name]:/data -v $(pwd):/backup ubuntu tar xzvf /backup/backup.tar.gz -C /data“ entpackt werden. Hierbei wird ein Container gestartet, der das Archiv in das angegebene Volume entpackt.

Wiederherstellung mit rsync: Für die Wiederherstellung mit rsync wird der Befehl „rsync -avzh /path/to/backup/ /var/lib/docker/volumes/[Volume-Name]/_data/“ verwendet, um die Daten aus dem Sicherungsverzeichnis zurück in das Docker Volume zu kopieren.

Vorsicht: Der Container, der das Volume verwendet, muss während des Backup- und Wiederherstellungsprozesses gestoppt sein, um Dateninkonsistenzen zu vermeiden. Des Weiteren sollte nach der Wiederherstellung überprüft werden, ob die Anwendungen innerhalb der Docker-Container korrekt mit den wiederhergestellten Daten arbeiten.

RexRay, Convoy oder Portworx

Neben der Tar-Archivierung und rsync stehen noch weitere Tools sowie Möglichkeiten zur Verfügung. Zu den erwähnenswerten gehören spezielle Docker-Volume-Plug-ins wie RexRay, Convoy oder Portworx. Diese bieten erweiterte Funktionen für das Management und die Sicherung von Docker-Volumes. Integrieren lassen sie sich oft direkt mit Cloud-Storage-Anbietern, wobei sie Funktionen wie Snapshots oder Datenreplikation anbieten.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zur IT-Sicherheit

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Für Docker-Hosts, die in einer Cloud-Umgebung laufen, bieten sich die integrierten Backup-Dienste von Anbietern wie AWS, Azure oder Google Cloud Platform an. Diese Dienste ermöglichen automatisierte und regelbasierte Backup-Lösungen, die speziell für die Cloud-Umgebung optimiert sind. Eine weitere Option sind Dateisystem-Snapshots, insbesondere wenn Docker-Volumes auf Dateisystemen wie ZFS oder Btrfs basieren. Die nativen Snapshot-Funktionen dieser Dateisysteme ermöglichen effiziente, inkrementelle Snapshots auf Dateisystemebene.

Storidge CIO, eine Software-Defined-Storage-Lösung, bietet automatische Datensicherung und Disaster Recovery speziell für Docker-Umgebungen an. Sie ermöglicht eine höhere Ebene der Datenverwaltung mit Funktionen wie automatischer Replikation und Failover.

Duplicati, ein freies Backup-Tool, eignet sich ebenfalls. Es unterstützt verschiedene Speicherlösungen, einschließlich Cloud-Diensten, und bietet Features wie Verschlüsselung und inkrementelle Backups.

Ceph ist eine verteilte Speicherlösung, die sich für die Sicherung großer Datenmengen in Docker-Umgebungen eignet und eine robuste und skalierbare Speicheroption darstellt.

Bildergalerie

Wiederherstellung eines kompletten Docker-Containers

Die Wiederherstellung eines kompletten Docker-Containers erfordert eine sorgfältig geplante Vorgehensweise. Zunächst sollte man ein Backup des Docker-Images haben, von dem der Container instanziiert wurde. Falls das Image nicht in einem Registry gespeichert ist, muss es separat gesichert und wiederhergestellt werden. Als Nächstes sind die Docker-Volumes, die persistente Daten des Containers enthalten, wiederherzustellen. Dies geschieht üblicherweise durch das Entpacken eines zuvor erstellten Backups des Volumes oder durch Synchronisation der Daten aus einer Backup-Quelle.

Sind sowohl Image als auch die Volumes verfügbar, erfolgt die Rekreation des Containers. Hier sollte der Container mit denselben Parametern und Konfigurationseinstellungen wie zuvor erstellt werden. Dies umfasst Umgebungsvariablen, Netzwerkeinstellungen, veröffentlichte Ports und andere spezifische Konfigurationen. In der Regel werden diese Konfigurationen in einem Dockerfile oder einem Docker-Compose-File festgehalten. Diese müssen ebenfalls gesichert werden. Nach der Neuerstellung des Containers mit den wiederhergestellten Volumes und dem korrekten Image muss überprüft werden, ob der Container wie erwartet funktioniert und die Anwendungen innerhalb des Containers mit den wiederhergestellten Daten korrekt interagieren. Bei diesem Prozess sind eine genaue Dokumentation der ursprünglichen Containerkonfiguration sowie eine sorgfältige Planung der Wiederherstellungssequenz entscheidend, um eine erfolgreiche Wiederherstellung zu gewährleisten.

(ID:50201186)