Docker-Lernen: Die spezifische Verwendung von Container-Containern

Docker-Lernen: Die spezifische Verwendung von Container-Containern

Container sind ein weiteres Kernkonzept von Docker.

Einfach ausgedrückt ist ein Container eine Anwendung oder eine Gruppe von Anwendungen, die unabhängig voneinander ausgeführt werden, sowie deren Betriebsumgebung. Entsprechend kann eine virtuelle Maschine als ein vollständiger Satz simulierter Betriebssysteme (die eine Laufumgebung und andere Systemumgebungen bereitstellen) und der darauf laufenden Anwendungen verstanden werden.

Die wichtigsten Vorgänge an Containern sind:

  • erstellen
  • Start-up
  • stoppen
  • Import und Export
  • löschen
  • usw.

Starten des Containers

Es gibt zwei Möglichkeiten. Eine besteht darin, einen neuen Container basierend auf dem Image zu erstellen und ihn zu starten. Die andere besteht darin, den Container im gestoppten Zustand neu zu starten.
Da Docker-Container so leichtgewichtig sind, können Benutzer Container jederzeit löschen und neue erstellen.

Erstellen und starten

Der erforderliche Befehl ist hauptsächlich „docker run“

Dies ist kaum von der lokalen Ausführung von /bin/echo „Hallo Welt“ zu unterscheiden.

Der folgende Befehl startet ein Bash-Terminal und ermöglicht Benutzerinteraktionen wie beispielsweise:

docker run -t -i ubuntu:18.04 /bin/bash

Mit der Option -t kann Docker ein Pseudo-TTY zuordnen und an die Standardeingabe des Containers binden, während -i die Standardeingabe des Containers geöffnet hält.

Was passiert also, wenn wir den Befehl „Docker Run“ verwenden, um einen Container zu erstellen und zu starten?

  1. Überprüfen Sie, ob das angegebene Image lokal vorhanden ist. Wenn nicht, laden Sie es aus dem öffentlichen Repository herunter und starten Sie es.
  2. Erstellen und Starten eines Containers mithilfe eines Images
  3. Ordnen Sie ein Dateisystem zu und mounten Sie eine Lese-/Schreibebene außerhalb der schreibgeschützten Imageebene
  4. Überbrücken Sie eine virtuelle Schnittstelle von der konfigurierten Bridge-Schnittstelle des Hosts zum Container.
  5. Konfigurieren einer IP-Adresse aus dem Adresspool für den Container
  6. Führt eine benutzerdefinierte Anwendung aus
  7. Nach der Ausführung wird der Container beendet

Wenn wir also das Terminal über Bash aufrufen, betreten wir tatsächlich ein anderes System.

Starten eines beendeten Containers

Mit dem Befehl „Docker Container Start“ können Sie einen beendeten Container direkt starten.

Der Kern des Containers ist die ausgeführte Anwendung und die erforderlichen Ressourcen sind für die Ausführung der Anwendung notwendig. Abgesehen davon gibt es keine weiteren Ressourcen. Sie können ps oder top im Pseudoterminal verwenden, um Prozessinformationen anzuzeigen.

Es ist ersichtlich, dass im Container nur die angegebene Bash-Anwendung ausgeführt wird. Durch diese Funktion ist die Ressourcenauslastung von Docker extrem hoch und es handelt sich um eine wirklich leichtgewichtige Virtualisierung.

Hintergrundvorgang

Häufiger werden wir den Container im Hintergrund ausführen und können dazu den Parameter -d hinzufügen. Das Folgende druckt jede Sekunde „Hallo Welt“.

docker run ubuntu:18.04 /bin/sh -c „während wahr; mache echo hallo Welt;sleep 1;fertig“ 


Wenn Sie den Parameter -d verwenden, um den Container auszuführen, wird er im Hintergrund ausgeführt:

Hinweis: Ob der Container über einen längeren Zeitraum ausgeführt wird, hängt mit dem von „docker run“ angegebenen Befehl zusammen und hat nichts mit dem Parameter „-d“ zu tun. Nach dem Start mit dem Parameter -d wird eine eindeutige ID zurückgegeben. Sie können die Containerinformationen auch über den Befehl „Docker Container ls“ anzeigen.

Um die Ausgabeinformationen des Containers zu erhalten, können Sie den Befehl „Docker Container Logs“ verwenden.

Docker-Container-Protokolle [Container-ID oder -NAMEN]
Hallo Welt
Hallo Welt
Hallo Welt
. . .

Beenden des Containers

Sie können Docker Container Stop oder Docker Stop Container-ID verwenden, um einen laufenden Container zu beenden. Darüber hinaus wird der Container automatisch beendet, wenn die im Docker-Container angegebene Anwendung beendet wird.

Container im beendeten Zustand können mit dem Befehl „Docker Container ls -a“ angezeigt werden. Zum Beispiel:

Ein beendeter Container kann mit dem Befehl „Docker Container Start“ neu gestartet werden.

Darüber hinaus beendet der Befehl „Docker Container Restart“ einen laufenden Container und startet ihn anschließend neu.

Betreten des Containers

Wenn der Parameter -d verwendet wird, wechselt der Container nach dem Start in den Hintergrund.

Manchmal müssen Sie den Container aufrufen, um Vorgänge auszuführen, z. B. mithilfe der Befehle „docker attach“ oder „docker exec“. Aus den unten erläuterten Gründen wird empfohlen, den Befehl „docker exec“ zu verwenden.

Befehl „Anhängen“

Hinweis: Wenn Sie diese Standardeingabe beenden, wird der Container angehalten.

exec-Befehl

Auf Docker Exec können mehrere Parameter folgen. Hier erklären wir hauptsächlich die Parameter -i und -t.

Wenn nur der Parameter -i verwendet wird, verfügt die Schnittstelle nicht über die bekannte Linux-Eingabeaufforderung, da kein Pseudoterminal zugewiesen ist, die Ergebnisse der Befehlsausführung können aber trotzdem zurückgegeben werden.

Wenn die Parameter -i -t zusammen verwendet werden, wird die bekannte Linux-Eingabeaufforderung angezeigt.

Wenn Sie diese Standardeingabe beenden, wird der Container nicht gestoppt. Aus diesem Grund wird die Verwendung von Docker Exec empfohlen.

Exportieren und Importieren von Containern

Container exportieren

Wenn Sie einen lokalen Container exportieren möchten, können Sie den Befehl „Docker Export“ verwenden.

Dadurch wird der Container-Snapshot in eine lokale Datei exportiert.

Importieren eines Containers

Mit Docker Import können Sie beispielsweise eine Container-Snapshot-Datei als Image importieren:

cat ubuntu.tar | Docker-Import – Test/Ubuntu:v1.0 

Löschen eines Containers

Sie können Docker Container RM oder Docker RM Container-ID verwenden, um einen Container im beendeten Zustand zu löschen. Zum Beispiel:

Hinweis: Zum Löschen eines Containers muss der Container gestoppt werden.

Alle beendeten Container bereinigen

Verwenden Sie den Befehl „docker container ls -a“, um alle erstellten Container anzuzeigen, einschließlich der Container im beendeten Zustand. Wenn zu viele Container vorhanden sind, kann es schwierig sein, sie einzeln zu löschen. Verwenden Sie den folgenden Befehl, um alle Container im beendeten Zustand zu bereinigen.

$ Docker-Container beschneiden

Dieser Vorgang ist ziemlich gefährlich, gehen Sie also mit Vorsicht vor. Bei den oben genannten Vorgängen handelt es sich um allgemeine Vorgänge im Zusammenhang mit Docker-Containern.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Auf Wiedersehen Docker: So wechseln Sie in 5 Minuten zu Containerd
  • Docker stellt Containern dynamisch Ports zur Verfügung
  • So betreten und verlassen Sie den Docker-Container
  • Detaillierte Erklärung zum Abrufen der IP-Adresse eines Docker-Containers
  • Detaillierte Erklärung der dynamischen Zuordnung laufender Container-Ports durch Docker
  • Docker entfernt abnormale Containervorgänge

<<:  Tutorial zum Zurücksetzen des Root-Passworts von Mac MySQL

>>:  Das WeChat-Applet implementiert den Serveraufbau des Benutzeranmeldemoduls

Artikel empfehlen

Einige Erfahrungen zum Aktivieren von HTTPS

Da sich die heimische Netzwerkumgebung immer weit...

So schreiben Sie mithilfe von Filtern transparentes CSS für Bilder

So schreiben Sie mithilfe von Filtern transparente...

Unterschied zwischen src- und href-Attributen

Es besteht ein Unterschied zwischen src und href ...

JS berechnet die Gewinnwahrscheinlichkeit basierend auf dem Preisgewicht

Inhaltsverzeichnis 1. Beispielszenario 1.1. Legen...

Analyse des Benchmarking-Prozesses von Sysbench für MySQL

Vorwort 1. Benchmarking ist eine Art Leistungstes...

Probleme und Lösungen für MYSQL5.7.17-Verbindungsfehler unter MAC

Das Problem, dass MYSQL5.7.17 unter MAC keine Ver...

Native JS-Implementierung der Lupenkomponente

In diesem Artikelbeispiel wird der spezifische Co...

So implementieren Sie eine Paging-Abfrage in MySQL

SQL-Paging-Abfrage:Hintergrund Im System des Unte...

Detaillierte Erklärung des Vue-Plugins

Zusammenfassen Dieser Artikel endet hier. Ich hof...

Das ganz links stehende Übereinstimmungsprinzip des MySQL-Datenbankindex

Inhaltsverzeichnis 1. Gemeinsame Indexbeschreibun...