Daten in Containern verwalten

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Die Containertechnologie hat die Anwendungsbereitstellung revolutioniert, indem sie isolierte, leichte und portierbare Umgebungen bietet. Die Verwaltung von Daten innerhalb von Containern stellt jedoch besondere Herausforderungen dar, insbesondere bei der Gewährleistung der Datenpersistenz über die Lebenszyklen von Containern. In dieser Herausforderung werden Ihnen essentielle Techniken für die effektive Datenverwaltung in Docker-Containern vermittelt.

Sie werden lernen, wie Docker-Volumes erstellt und verwendet werden, wie sie in Containern eingebunden werden, wie Daten in die Volumes geschrieben und aus ihnen gelesen werden, und wie Sicherungs- und Wiederherstellungsvorgänge durchgeführt werden. Diese Fähigkeiten sind von entscheidender Bedeutung für die Entwicklung von robusten containerisierten Anwendungen, die eine permanente Speicherung erfordern.

Lassen Sie uns unsere Erkundung der Datenverwaltung in Docker-Containern beginnen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/VolumeOperationsGroup(["Volume Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/exec("Execute Command in Container") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/VolumeOperationsGroup -.-> docker/volume("Manage Volumes") subgraph Lab Skills docker/run -.-> lab-15896{{"Daten in Containern verwalten"}} docker/exec -.-> lab-15896{{"Daten in Containern verwalten"}} docker/inspect -.-> lab-15896{{"Daten in Containern verwalten"}} docker/volume -.-> lab-15896{{"Daten in Containern verwalten"}} end

Erstellen eines Docker-Volumes

In diesem Schritt erstellen Sie ein Docker-Volume, das ein verwaltetes Objekt zur Speicherung von persistenten Daten unabhängig von Containern ist.

Aufgaben

  1. Erstellen Sie ein neues Docker-Volume mit dem Namen myvolume mithilfe des Befehls docker volume create.
  2. Listen Sie alle Docker-Volumes auf, um die Erstellung von myvolume zu überprüfen.

Anforderungen

  • Führen Sie alle Vorgänge im Verzeichnis /home/labex/project aus.
  • Verwenden Sie den Standard-Volumedriver beim Erstellen des Volumes.

Beispiel

Nach Abschluss dieses Schritts sollte das Ausführen von docker volume ls eine Ausgabe ähnlich der folgenden ergeben:

DRIVER    VOLUME NAME
local     myvolume
✨ Lösung prüfen und üben

Einbinden eines Docker-Volumes in einen Container

Jetzt, da wir ein Volume haben, befassen wir uns mit der Anbindung an einen Container. In diesem Schritt wird gezeigt, wie eine permanente Speicherung für einen laufenden Container verfügbar gemacht wird.

Aufgaben

  1. Starten Sie einen neuen Docker-Container mit dem Namen my-container auf der Grundlage des nginx-Images.
  2. Binden Sie das myvolume-Volume an den Pfad /app/data innerhalb des Containers ein.
  3. Vergewissern Sie sich, dass das Volume korrekt eingebunden ist, indem Sie den Befehl docker inspect verwenden.

Anforderungen

  • Führen Sie alle Vorgänge im Verzeichnis /home/labex/project aus.
  • Starten Sie den Container im detachierten Modus.
  • Verwenden Sie die Option -v, um das Volume beim Starten des Containers einzubinden.

Beispiel

Nach dem Starten des Containers sollte die Ausgabe von docker inspect my-container Folgendes enthalten:

"Mounts": [
    {
        "Type": "volume",
        "Name": "myvolume",
        "Source": "/var/lib/docker/volumes/myvolume/_data",
        "Destination": "/app/data",
        "Driver": "local",
        "Mode": "z",
        "RW": true,
        "Propagation": ""
    }
]
✨ Lösung prüfen und üben

Schreiben von Daten in ein Docker-Volume

In diesem Schritt lernen Sie, wie Sie Daten in ein eingebundenes Docker-Volume schreiben, was die Datenpersistenz ermöglicht, auch wenn der Container entfernt wird.

Aufgaben

  1. Verwenden Sie den Befehl docker exec, um auf den Container my-container zuzugreifen.
  2. Erstellen Sie in dem Verzeichnis /app/data innerhalb des Containers eine Datei mit dem Namen hello.txt.
  3. Schreiben Sie den Inhalt "Hello, World!" in die Datei hello.txt.

Anforderungen

  • Führen Sie alle Vorgänge im Verzeichnis /home/labex/project aus.
  • Verwenden Sie den Befehl echo, um den Inhalt in die Datei zu schreiben.

Beispiel

Nach der Ausführung der Befehle sollten Sie die Datei sehen können:

$ docker exec my-container ls /app/data
hello.txt
✨ Lösung prüfen und üben

Lesen von Daten aus einem Docker-Volume

Jetzt, da wir Daten in unser Volume geschrieben haben, überprüfen wir, ob wir sie zurücklesen können, was die Datenpersistenz über Containeroperationen zeigt.

Aufgaben

  1. Verwenden Sie den Befehl docker exec, um auf den Container my-container zuzugreifen.
  2. Lesen Sie und zeigen Sie den Inhalt der Datei /app/data/hello.txt an.

Anforderungen

  • Führen Sie alle Vorgänge im Verzeichnis /home/labex/project aus.
  • Verwenden Sie den Befehl cat, um den Dateiinhalt anzuzeigen.

Beispiel

Die Ausgabe Ihres Befehls sollte lauten:

Hello, World!
✨ Lösung prüfen und üben

Sichern und Wiederherstellen eines Docker-Volumes

In diesem letzten Schritt lernen Sie, wie Sie die Daten aus einem Docker-Volume sichern und auf ein neues Volume wiederherstellen, was für Datenmigration und Katastrophenwiederherstellungsszenarien von entscheidender Bedeutung ist.

Aufgaben

  1. Erstellen Sie eine Sicherung der Daten des myvolume-Volumes als Tarball mit dem Namen myvolume.tar.gz im Verzeichnis /home/labex/project.
  2. Erstellen Sie ein neues Docker-Volume mit dem Namen mynewvolume.
  3. Wiederherstellen Sie die Sicherungsdaten auf mynewvolume.

Anforderungen

  • Führen Sie alle Vorgänge im Verzeichnis /home/labex/project aus.
  • Verwenden Sie docker run mit der Option --rm für temporäre Container während der Sicherungs- und Wiederherstellungsvorgänge.

Beispiel

Nach Abschluss des Sicherungs- und Wiederherstellungsverfahrens sollte die Überprüfung des Inhalts des neuen Volumes ergeben:

$ docker run --rm -v mynewvolume:/app/data alpine cat /app/data/hello.txt
Hello, World!
✨ Lösung prüfen und üben

Zusammenfassung

In dieser Herausforderung haben Sie praktische Erfahrungen bei der Verwaltung von Daten in Docker-Containern gewonnen. Sie haben gelernt, wie Sie:

  1. Docker-Volumes erstellen und verwalten
  2. Volumes an Container binden
  3. Daten in Volumes schreiben und aus Volumes lesen
  4. Volume-Daten sichern und auf ein neues Volume wiederherstellen

Diese Fähigkeiten sind grundlegend für die Entwicklung von robusten containerisierten Anwendungen, die eine permanente Speicherung erfordern. Wenn Sie Ihre Docker-Reise fortsetzen, denken Sie daran, dass eine effektive Datenverwaltung für das Aufrechterhalten des Anwendungsstatus, die Gewährleistung der Datentragfähigkeit und die Erleichterung reibungsloser Betriebsprozesse von entscheidender Bedeutung ist.

Für fortgeschrittene Szenarien können Sie überlegen, Volumedreiber für die Integration von Cloud-Speicher zu erkunden, automatisierte Sicherungsstrategien umzusetzen und zu studieren, wie Volumes mit Docker Swarm und Kubernetes interagieren, um verteiltes Speichern zu realisieren.