Einführung
In diesem Lab lernen Sie, wie Sie den Befehl docker context import effektiv nutzen. Wir beginnen damit, einen Docker-Kontext zu erstellen und in eine Datei zu exportieren, um zu demonstrieren, wie Sie Ihre Konfigurationen verpacken können.
Nach dem Export üben Sie, diesen Kontext wieder in Docker zu importieren – sowohl aus der exportierten Datei als auch direkt über die Standardeingabe. Abschließend überprüfen Sie, ob der importierte Kontext korrekt erkannt und in Ihrer Docker-Umgebung verfügbar ist.
Docker-Kontext erstellen und exportieren
In diesem Schritt lernen Sie, wie Sie einen Docker-Kontext erstellen und in eine Datei exportieren. Ein Docker-Kontext ist eine Methode, um Verbindungen zu verschiedenen Docker-Daemons zu verwalten. Standardmäßig verbindet Docker sich mit dem lokalen Daemon. Sie können jedoch Kontexte erstellen, um sich mit entfernten Daemons oder anderen Umgebungen wie Docker Swarm oder Kubernetes zu verbinden.
Zuerst erstellen wir einen neuen Docker-Kontext namens my-context. Wir konfigurieren diesen Kontext so, dass er sich mit dem standardmäßigen lokalen Docker-Daemon verbindet.
docker context create my-context --docker "host=unix:///var/run/docker.sock"
Dieser Befehl erstellt einen neuen Kontext namens my-context und gibt den Docker-Host als den standardmäßigen Unix-Socket für den lokalen Daemon an.
Als nächstes exportieren wir diesen neu erstellten Kontext in eine Datei namens my-context.tar.gz.
docker context export my-context -o ~/project/my-context.tar.gz
Dieser Befehl exportiert den my-context in eine tar.gz-Datei, die sich in Ihrem ~/project-Verzeichnis befindet. Das Flag -o gibt den Ausgabedateipfad an.
Sie können überprüfen, ob die Datei erstellt wurde, indem Sie den Inhalt des Verzeichnisses ~/project auflisten.
ls ~/project/
In der Ausgabe sollte my-context.tar.gz aufgelistet sein.
Exportierten Kontext aus einer Datei importieren
Im vorherigen Schritt haben wir einen Docker-Kontext in die Datei my-context.tar.gz exportiert. In diesem Schritt werden wir diesen Kontext wieder aus der Datei in Docker importieren.
Vor dem Import entfernen wir zunächst den bestehenden my-context, um den Import eines Kontexts zu simulieren, der aktuell nicht vorhanden ist.
docker context rm my-context
Dieser Befehl entfernt den Docker-Kontext namens my-context. Sie können überprüfen, ob er entfernt wurde, indem Sie die Kontexte erneut auflisten.
docker context ls
my-context sollte nun nicht mehr in der Liste erscheinen.
Nun importieren wir den Kontext aus der Datei ~/project/my-context.tar.gz.
docker context import my-context-from-file ~/project/my-context.tar.gz
Dieser Befehl importiert den Kontext aus der angegebenen Datei und benennt den importierten Kontext my-context-from-file.
Nach Abschluss des Imports können Sie die Docker-Kontexte erneut auflisten, um den neu importierten Kontext zu sehen.
docker context ls
Sie sollten nun my-context-from-file in der Liste der Kontexte sehen.
Exportierten Kontext über stdin importieren
Im vorherigen Schritt haben wir einen Docker-Kontext aus einer Datei importiert. Eine alternative Methode ist der Import durch direkte Übergabe der exportierten Kontextdaten an den Befehl docker context import über Standard-Eingabe (stdin). Dies ist nützlich, wenn Sie einen Kontext importieren möchten, ohne ihn zuvor in einer Datei zu speichern.
Zuerst entfernen wir den im vorherigen Schritt importierten Kontext, um Konflikte zu vermeiden.
docker context rm my-context-from-file
Nun verwenden wir den cat-Befehl, um den Inhalt der Datei my-context.tar.gz zu lesen und an den docker context import-Befehl weiterzuleiten.
cat ~/project/my-context.tar.gz | docker context import my-context-from-stdin -
In diesem Befehl liest cat ~/project/my-context.tar.gz den Dateiinhalt. Das Pipe-Symbol | leitet die Ausgabe des cat-Befehls als Eingabe an docker context import weiter. Das - am Ende des docker context import-Befehls weist an, die Kontextdaten von der Standard-Eingabe zu lesen. Wir benennen den importierten Kontext my-context-from-stdin.
Nach Abschluss des Befehls können Sie die Docker-Kontexte auflisten, um zu überprüfen, ob der Kontext erfolgreich über stdin importiert wurde.
docker context ls
Sie sollten nun my-context-from-stdin in der Kontextliste sehen.
Importierten Kontext überprüfen
In den vorherigen Schritten haben wir einen Docker-Kontext erstellt, exportiert und anschließend mit zwei verschiedenen Methoden importiert: aus einer Datei und über Standard-Eingabe. In diesem letzten Schritt werden wir überprüfen, ob der importierte Kontext funktionsfähig ist und zur Interaktion mit dem Docker-Daemon verwendet werden kann.
Zuerst listen wir die verfügbaren Kontexte auf, um zu bestätigen, dass sowohl my-context-from-file als auch my-context-from-stdin vorhanden sind.
docker context ls
In der Ausgabe sollten beide Kontexte aufgelistet sein.
Nun wechseln wir zum Kontext, den wir über Standard-Eingabe importiert haben, my-context-from-stdin.
docker context use my-context-from-stdin
Dieser Befehl setzt den aktuellen Docker-Kontext auf my-context-from-stdin. Alle nachfolgenden Docker-Befehle verwenden nun diesen Kontext für die Verbindung zum Docker-Daemon.
Um zu überprüfen, ob der Kontext korrekt funktioniert, führen wir einen einfachen Docker-Befehl aus, wie z.B. das Auflisten der laufenden Container. Da wir mit dem lokalen Docker-Daemon verbunden sind, sollte dieser Befehl die gleiche Ausgabe wie docker ps ohne Angabe eines Kontexts zeigen.
docker ps
Falls der Kontext korrekt konfiguriert ist, sollte dieser Befehl erfolgreich ausgeführt werden und die Liste der laufenden Container anzeigen (falls vorhanden).
Abschließend wechseln wir zurück zum Standard-Kontext.
docker context use default
Dieser Befehl setzt den aktuellen Docker-Kontext wieder auf den lokalen Standard-Daemon zurück.
Zusammenfassung
In diesem Lab haben wir gelernt, wie Docker-Kontexte durch Erstellen, Exportieren und Importieren verwaltet werden. Wir begannen mit der Erstellung eines neuen Docker-Kontexts namens my-context, der für die Verbindung zum lokalen Daemon konfiguriert wurde, und exportierten diesen Kontext anschließend in eine tar.gz-Datei.
Nach dem Export übten wir das erneute Importieren des Kontexts in Docker. Zuerst entfernten wir den ursprünglichen Kontext, um den Import eines neuen zu simulieren, und importierten dann erfolgreich den Kontext aus der zuvor erstellten Datei mit dem Befehl docker context import, wobei wir ihm einen neuen Namen gaben, um ihn zu unterscheiden.



