Arbeiten mit Docker-Containern

0 Aktien
0
0
0
0

Einführung

Docker ist ein beliebtes Containerisierungstool, das Softwareanwendungen ein Dateisystem bereitstellt, das alles enthält, was sie zum Ausführen benötigen. Durch die Verwendung von Docker-Containern wird sichergestellt, dass sich die Software unabhängig vom Einsatzort gleich verhält, da ihre Laufzeitumgebung absolut konsistent ist. In diesem Tutorial geben wir einen kurzen Überblick über den Zusammenhang zwischen Docker-Images und Docker-Containern. Anschließend betrachten wir genauer, wie Container ausgeführt, gestartet, gestoppt und entfernt werden.

Überblick

Ein Docker-Image kann man sich als eine Art Vorlage für die Erstellung von Docker-Containern vorstellen. Images beginnen typischerweise mit einem Root-Dateisystem und fügen Dateisystemänderungen sowie die zugehörigen Ausführungsparameter in übersichtlichen, schreibgeschützten Schichten hinzu. Im Gegensatz zu einer typischen Linux-Distribution enthält ein Docker-Image in der Regel nur die Hardware, die zum Ausführen der Anwendung notwendig ist. Images sind zustandslos und verändern sich nicht. Sie bilden vielmehr die Ausgangsbasis für Docker-Container. Images werden mit dem Befehl `docker run` gestartet, der einen Container erstellt, indem er eine Lese-/Schreibschicht über das Image legt. Diese Kombination aus schreibgeschützten Schichten und der Lese-/Schreibschicht wird als Union-Dateisystem bezeichnet. Wird eine Datei in einem laufenden Container geändert, wird die Datei aus dem schreibgeschützten Bereich in die Lese-/Schreibschicht kopiert, wo die Änderungen angewendet werden. Die Version in der Lese-/Schreibschicht verbirgt die Originaldatei, löscht sie aber nicht. Änderungen in der Lese-/Schreibschicht existieren nur in einer separaten Containerinstanz. Wird ein Container gelöscht, gehen alle Änderungen verloren, sofern keine Maßnahmen zu deren Sicherung getroffen werden.

Wie man mit Docker-Containern arbeitet
  1. Erstellen Sie zwei Docker-Container
  2. Starten Sie den ersten Container neu.
  3. Löschen Sie beide Container.

Arbeiten mit Containern

Jedes Mal, wenn Sie den Befehl verwenden docker run Bei der Verwendung wird ein neuer Container aus dem von Ihnen angegebenen Bild erstellt. Dies kann zu Verwirrung führen, daher sehen wir uns einige Beispiele an:

Schritt 1: Erstellen Sie zwei Behälter

Ausführungsbefehl Docker Im Folgenden wird ein neuer Container unter Verwendung des Ubuntu-Basisimages erstellt. -T Es bietet uns ein Terminal und -ich Es ermöglicht uns die Interaktion damit. Wir folgen dem Standardbefehl in der Docker-Datei des Ubuntu-Basisimages, bashWir verlassen uns darauf, dass es uns in einer Hülle zurücklässt.

docker run -ti ubuntu

Die Befehlszeile ändert sich und zeigt an, dass wir uns als Root-Benutzer innerhalb des Containers befinden, gefolgt von der 12-stelligen Container-ID.

root@11cc47339ee1:/#

Wir haben eine Änderung mit Textspiegelung im Ordner vorgenommen. /tmp Wir erstellen einen Container und verwenden ihn dann. Katze Wir verwenden es, um zu bestätigen, dass es erfolgreich gespeichert wurde.

echo "Example1" > /tmp/Example1.txt
cat /tmp/Example1.txt
Output
Example1

Jetzt lasst uns aus dem Container raus.

exit

Docker-Container werden nicht sofort nach Abschluss des von ihnen ausgeführten Befehls gestartet, daher wurde unser Container gestoppt, als wir die Bash-Shell verließen. Wenn der Befehl P.S. Wenn wir den Befehl zum Anzeigen der laufenden Container ausführen, wird unser Befehl nicht angezeigt.

docker ps
Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Wenn die Flagge -A Fügen Sie den Befehl hinzu, der alle Container anzeigt, egal ob gestoppt oder aktiv, und unser Container wird in der Liste erscheinen:

docker ps -a
Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
11cc47339ee1 ubuntu "/bin/bash" 6 minutes ago Exited (127) 8 seconds ago small_sinoussi

Beim Erstellen des Containers wurden ihm eine Container-ID und ein zufällig generierter Name zugewiesen. In diesem Fall 11cc47339ee1 Container-ID und small_sinoussi Es handelt sich um einen zufällig generierten Namen. ps -a Diese Werte werden zusammen mit dem Image, von dem der Container erstellt wurde (Ubuntu), dem Erstellungsdatum des Containers (vor sechs Minuten) und dem ausgeführten Befehl (/bin/bash) ausgegeben. Die Ausgabe zeigt außerdem den Status des Containers (Beendet) und die Zeit an, die er sich in diesem Zustand befand (vor sechs Sekunden). Würde der Container noch laufen, würde der Status «up» gefolgt von der Laufzeit angezeigt.

Wenn wir denselben Befehl erneut ausführen, wird ein völlig neuer Container erstellt:

docker run -ti ubuntu

Wir erkennen, dass es sich um einen neuen Container handelt, da die Kennung in der Befehlszeile anders ist, und wenn wir nach unserer Datei Example1 suchen, finden wir sie nicht:

cat /tmp/Example1
Output
cat: /tmp/Example1: No such file or directory

Es mag so aussehen, als wären die Daten verschwunden, aber das sind sie nicht. Wir verlassen nun den zweiten Container und stellen fest, dass dieser und unser erster Container mit der erstellten Datei weiterhin auf dem System vorhanden sind.

exit

Wenn wir die Container erneut auflisten, erscheinen beide:

docker ps -a
Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6e4341887b69 ubuntu "/bin/bash" About a minute ago Exited (1) 6 seconds ago kickass_borg
11cc47339ee1 ubuntu "/bin/bash" 13 minutes ago Exited (127) 6 minutes ago small_sinoussi

Schritt 2: Starten Sie den ersten Container neu.

Um einen bestehenden Container neu zu starten, verwenden wir den Befehl `start` mit dem Parameter `-a`, um eine Verbindung herzustellen, und dem Parameter `-i`, um den interaktiven Modus zu aktivieren, gefolgt von der Container-ID oder dem Namen. Ersetzen Sie unbedingt Ihre Container-ID im folgenden Befehl:

docker start -ai 11cc47339ee1

Wir befinden uns erneut an der Container-Bash-Eingabeaufforderung, und wenn wir die zuvor erstellte Datei mit cat anzeigen, ist sie immer noch vorhanden.

cat /tmp/Example1.txt
Output
Example1

Jetzt können wir den Container verlassen:

exit

Diese Ausgabe zeigt, dass Änderungen innerhalb des Containers auch nach dem Stoppen und Neustarten erhalten bleiben. Erst wenn der Container entfernt wird, wird der Inhalt gelöscht. Dieses Beispiel verdeutlicht außerdem, dass die Änderungen auf den jeweiligen Container beschränkt waren. Beim Start des zweiten Containers wurde der ursprüngliche Zustand des Images wiederhergestellt.

Schritt 3: Löschen Sie beide Container

Wir haben zwei Container erstellt und werden unser kurzes Tutorial mit deren Entfernung abschließen. Der Befehl `docker rm`, der nur bei gestoppten Containern funktioniert, ermöglicht die Angabe des Namens oder der ID eines oder mehrerer Container. Wir können also beide mit folgendem Befehl entfernen:

docker rm 11cc47339ee1 kickass_borg
Output
11cc47339ee1
kickass_borg

Beide Container und alle darin vorgenommenen Änderungen sind nun verschwunden.

Ergebnis

Wir sehen uns das Rezept genauer an. docker run Wir haben gesehen, wie Docker bei jedem Start automatisch einen neuen Container erstellt. Außerdem haben wir gesehen, wie man einen gestoppten Container findet, startet und sich mit ihm verbindet. Wenn Sie mehr über Container-Management erfahren möchten, könnte Sie der Leitfaden zur Benennung von Docker-Containern interessieren: 3 Tipps für Einsteiger.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte Ihnen auch gefallen