Verwendung des Befehls docker checkpoint create zum Erstellen eines Checkpoints für einen laufenden Container

DockerDockerBeginner
Jetzt üben

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

Einführung

In diesem Lab lernen Sie, wie Sie den Befehl docker checkpoint create verwenden, um den Zustand eines laufenden Containers zu speichern. Wir beginnen mit dem Start eines einfachen Ubuntu-Containers, der als Ziel für unsere Checkpoint-Operationen dient.

Nach der Einrichtung des Containers erstellen Sie einen Checkpoint für den laufenden Container, wodurch dessen aktueller Zustand erfasst wird. Anschließend überprüfen wir, ob der Checkpoint erfolgreich erstellt wurde. Abschließend erfahren Sie, wie Sie einen Checkpoint erstellen und ein benutzerdefiniertes Verzeichnis für die Speicherung der Checkpoint-Daten angeben können. Diese praktische Übung demonstriert die Anwendung von Docker-Container-Checkpointing in der Praxis.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/images("List Images") subgraph Lab Skills docker/run -.-> lab-555066{{"Verwendung des Befehls docker checkpoint create zum Erstellen eines Checkpoints für einen laufenden Container"}} docker/ps -.-> lab-555066{{"Verwendung des Befehls docker checkpoint create zum Erstellen eines Checkpoints für einen laufenden Container"}} docker/create -.-> lab-555066{{"Verwendung des Befehls docker checkpoint create zum Erstellen eines Checkpoints für einen laufenden Container"}} docker/pull -.-> lab-555066{{"Verwendung des Befehls docker checkpoint create zum Erstellen eines Checkpoints für einen laufenden Container"}} docker/images -.-> lab-555066{{"Verwendung des Befehls docker checkpoint create zum Erstellen eines Checkpoints für einen laufenden Container"}} end

Container für Checkpointing starten

In diesem Schritt starten wir einen einfachen Docker-Container, den wir später einem Checkpoint unterziehen werden. Checkpointing ermöglicht es, den Zustand eines laufenden Containers zu speichern und später wiederherzustellen. Dies ist nützlich für die Migration von Containern, Debugging oder die Erstellung von Snapshots.

Zuerst müssen wir das ubuntu-Image von Docker Hub herunterladen. Dieses Image ist klein und eignet sich gut für unsere Demonstration. Öffnen Sie Ihr Terminal in der LabEx-Umgebung.

docker pull ubuntu

Sie sollten eine Ausgabe sehen, die anzeigt, dass das Image heruntergeladen wird. Sobald der Download abgeschlossen ist, können Sie überprüfen, ob das Image lokal verfügbar ist, indem Sie die Images auflisten.

docker images

Suchen Sie nach ubuntu in der Liste der Images.

Nun starten wir einen Container basierend auf dem ubuntu-Image. Wir führen einen einfachen Befehl im Container aus, der ihn am Laufen hält, wie z.B. sleep infinity. Wir geben dem Container auch einen Namen, damit er später leichter referenziert werden kann. Nennen wir ihn my-checkpoint-container.

docker run -d --name my-checkpoint-container ubuntu sleep infinity

Das Flag -d führt den Container im Detached-Modus aus, d.h. er läuft im Hintergrund. Das Flag --name weist dem Container einen Namen zu. ubuntu ist das verwendete Image, und sleep infinity ist der Befehl, der im Container ausgeführt wird, um ihn am Leben zu erhalten.

Nach Ausführung des Befehls gibt Docker die vollständige Container-ID aus. Sie können überprüfen, ob der Container läuft, indem Sie die aktiven Container auflisten.

docker ps

Sie sollten einen Container namens my-checkpoint-container in der Liste sehen mit dem Status Up. Dies bestätigt, dass unser Container läuft und in den nächsten Schritten für das Checkpointing bereit ist.

Checkpoint für laufenden Container erstellen

In diesem Schritt erstellen wir einen Checkpoint für den im vorherigen Schritt gestarteten Container. Das Erstellen eines Checkpoints speichert den aktuellen Zustand des Containers inklusive Speicherinhalt, Prozessen und Dateisystemänderungen auf der Festplatte. Dies ermöglicht es, einen Container anzuhalten und später genau an der Stelle fortzusetzen, an der der Checkpoint erstellt wurde.

Um einen Checkpoint zu erstellen, verwenden wir den Befehl docker checkpoint create. Dieser Befehl benötigt den Namen des Containers sowie einen Namen für den Checkpoint. Wir nennen unseren Checkpoint my-first-checkpoint.

docker checkpoint create my-checkpoint-container my-first-checkpoint

Die Ausführung dieses Befehls dauert einen Moment, da Docker den Containerzustand speichert. Bei erfolgreicher Ausführung wird nur wenig Ausgabe angezeigt.

Nach Erstellung des Checkpoints läuft der Container my-checkpoint-container weiter. Das Checkpointing stoppt den Container nicht, sondern erstellt lediglich eine Momentaufnahme seines Zustands.

Im nächsten Schritt werden wir überprüfen, ob der Checkpoint erfolgreich erstellt wurde und verfügbar ist.

Erstellten Checkpoint überprüfen

In diesem Schritt werden wir verifizieren, dass der im vorherigen Schritt erstellte Checkpoint existiert und unserem Container zugeordnet ist. Docker bietet einen Befehl zum Auflisten der Checkpoints für einen bestimmten Container an.

Um die Checkpoints für my-checkpoint-container aufzulisten, verwenden Sie den Befehl docker checkpoint ls gefolgt vom Containernamen.

docker checkpoint ls my-checkpoint-container

Dieser Befehl zeigt eine Liste der verfügbaren Checkpoints für den angegebenen Container an. In der Ausgabe sollte my-first-checkpoint aufgeführt sein. Dies bestätigt, dass der Checkpoint erfolgreich erstellt wurde und für die Wiederherstellung des Containerzustands bei Bedarf bereit ist.

Die Möglichkeit, Checkpoints aufzulisten, ist wichtig für deren Verwaltung, insbesondere wenn Sie mehrere Checkpoints für einen einzelnen Container oder Checkpoints für verschiedene Container haben.

Im nächsten Schritt werden wir das Erstellen eines Checkpoints in einem anderen Verzeichnis untersuchen.

Checkpoint in benutzerdefiniertem Verzeichnis erstellen

In diesem Schritt lernen wir, wie man einen Checkpoint in einem selbst gewählten Verzeichnis erstellt. Standardmäßig speichert Docker Checkpoints an einem vordefinierten Ort innerhalb des Docker-Datenstammverzeichnisses. Es kann jedoch sinnvoll sein, Checkpoints an einem anderen Ort zu speichern, beispielsweise auf einer anderen Festplatte oder einem Shared Storage.

Um ein benutzerdefiniertes Verzeichnis für den Checkpoint anzugeben, verwenden wir das Flag --checkpoint-dir mit dem Befehl docker checkpoint create. Zuerst erstellen wir ein neues Verzeichnis in unserem Home-Verzeichnis für die Checkpoints:

mkdir ~/project/my-checkpoints

Nun können wir einen weiteren Checkpoint für unseren laufenden Container my-checkpoint-container erstellen, diesmal mit dem Verzeichnis ~/project/my-checkpoints als Speicherort. Wir nennen diesen neuen Checkpoint my-second-checkpoint.

docker checkpoint create --checkpoint-dir ~/project/my-checkpoints my-checkpoint-container my-second-checkpoint

Dieser Befehl erstellt die Checkpoint-Daten im Verzeichnis ~/project/my-checkpoints. Sie können den Inhalt dieses Verzeichnisses überprüfen:

ls ~/project/my-checkpoints/my-second-checkpoint

Sie sollten mehrere Dateien und Verzeichnisse sehen, die durch den Checkpoint-Prozess erstellt wurden.

Obwohl wir ein benutzerdefiniertes Verzeichnis angegeben haben, bleibt der Checkpoint dem Container zugeordnet. Bei erneuter Auflistung der Checkpoints für den Container werden sowohl my-first-checkpoint als auch my-second-checkpoint angezeigt:

docker checkpoint ls my-checkpoint-container

Dies zeigt, dass Docker Checkpoints unabhängig von ihrem Speicherort verwaltet. Die Verwendung eines benutzerdefinierten Verzeichnisses bietet mehr Flexibilität bei der Verwaltung Ihrer Checkpoint-Daten.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man den Befehl docker checkpoint create verwendet, um den Zustand eines laufenden Containers zu speichern. Wir begannen damit, einen einfachen ubuntu-Container namens my-checkpoint-container mit dem Befehl docker run -d --name my-checkpoint-container ubuntu sleep infinity zu starten, wobei wir sicherstellten, dass er im Detached-Modus läuft. Den Status des Containers haben wir mit docker ps überprüft.

Anschließend haben wir einen Checkpoint für den laufenden Container erstellt. Dieser Prozess beinhaltet die Verwendung des Befehls docker checkpoint create, um den aktuellen Zustand des Containers einschließlich seines Speichers und seiner Prozesse zu erfassen, was eine spätere Wiederherstellung ermöglicht. Wir haben außerdem untersucht, wie man die erfolgreiche Erstellung des Checkpoints überprüft und wie man ein benutzerdefiniertes Verzeichnis für die Speicherung der Checkpoint-Daten angibt.