Verwendung des docker container kill Befehls zur Container-Verwaltung

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 Docker-Container mit dem Befehl docker container kill verwalten. Wir beginnen mit der Erstellung und Ausführung eines einfachen Containers. Anschließend untersuchen Sie, wie ein laufender Container mit dem Standardsignal gestoppt wird. Abschließend erfahren Sie, wie ein Container mit benutzerdefinierten Signalen beendet werden kann – sowohl nach Name als auch nach Nummer. Dies vermittelt Ihnen wesentliche Fähigkeiten zur Steuerung des Lebenszyklus Ihrer Docker-Container.


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/stop("Stop Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") subgraph Lab Skills docker/run -.-> lab-555111{{"Verwendung des docker container kill Befehls zur Container-Verwaltung"}} docker/ps -.-> lab-555111{{"Verwendung des docker container kill Befehls zur Container-Verwaltung"}} docker/stop -.-> lab-555111{{"Verwendung des docker container kill Befehls zur Container-Verwaltung"}} docker/create -.-> lab-555111{{"Verwendung des docker container kill Befehls zur Container-Verwaltung"}} docker/pull -.-> lab-555111{{"Verwendung des docker container kill Befehls zur Container-Verwaltung"}} end

Erstellen und Ausführen eines einfachen Containers

In diesem Schritt lernen Sie, wie Sie einen einfachen Docker-Container erstellen und ausführen. Ein Container ist eine standardisierte Softwareeinheit, die Code und alle seine Abhängigkeiten verpackt, damit die Anwendung schnell und zuverlässig in verschiedenen Rechenumgebungen läuft.

Zuerst müssen wir das Docker-Image herunterladen, das wir verwenden werden. Wir nutzen das ubuntu-Image, ein minimales Ubuntu-Betriebssystem.

docker pull ubuntu

Dieser Befehl lädt das ubuntu-Image von Docker Hub auf Ihren lokalen Rechner herunter. Sie sollten eine Ausgabe sehen, die den Fortschritt des Downloads anzeigt.

Nachdem wir das Image haben, können wir einen Container darauf basierend ausführen. Wir führen einen einfachen Befehl innerhalb des Containers aus.

docker run ubuntu echo "Hello from Docker!"

Lassen Sie uns diesen Befehl aufschlüsseln:

  • docker run: Dies ist der Befehl zum Starten eines neuen Containers.
  • ubuntu: Dies ist der Name des Images, das wir verwenden möchten.
  • echo "Hello from Docker!": Dies ist der Befehl, der innerhalb des Containers ausgeführt wird.

Wenn Sie diesen Befehl ausführen, erstellt Docker einen neuen Container aus dem ubuntu-Image, führt den echo-Befehl darin aus und beendet den Container anschließend. Sie sollten die Ausgabe Hello from Docker! in Ihrem Terminal sehen.

Um alle ausgeführten Container anzuzeigen, einschließlich der beendeten, können Sie den Befehl docker ps -a verwenden.

docker ps -a

Dieser Befehl listet alle Container auf, sowohl laufende als auch gestoppte. Sie sollten einen Eintrag für den gerade ausgeführten Container sehen, mit dem Status "Exited".

Beenden eines laufenden Containers mit Standardsignal

Im vorherigen Schritt haben wir einen Container ausgeführt, der einen Befehl ausführte und sich dann beendete. In diesem Schritt werden wir einen Container starten, der aktiv bleibt, und lernen, wie man ihn mit dem Standardsignal stoppt.

Zuerst starten wir einen Container, der kontinuierlich läuft. Wir verwenden erneut das ubuntu-Image, diesmal jedoch mit einem Befehl, der unendlich wartet.

docker run -d ubuntu sleep infinity

Betrachten wir den Befehl im Detail:

  • docker run: Befehl zum Starten eines neuen Containers
  • -d: Dieser Parameter startet den Container im Detached-Modus (im Hintergrund), ohne das Terminal zu blockieren
  • ubuntu: Das zu verwendende Image
  • sleep infinity: Der im Container auszuführende Befehl. sleep infinity bewirkt, dass der Container unbegrenzt läuft

Nach Ausführung dieses Befehls gibt Docker die Container-ID aus. Der Container läuft nun im Hintergrund.

Um die aktiven Container anzuzeigen, verwenden Sie den Befehl docker ps:

docker ps

Sie sollten einen Eintrag für den gerade gestarteten Container sehen, mit dem Status "Up" und der Laufzeit. Notieren Sie sich die CONTAINER ID oder den NAMES-Eintrag, da wir diese Angaben zum Stoppen des Containers benötigen.

Nun beenden wir den laufenden Container mit dem docker kill-Befehl. Standardmäßig sendet docker kill das SIGKILL-Signal an den Hauptprozess des Containers. SIGKILL ist ein Signal, das einen Prozess sofort beendet und nicht abgefangen oder ignoriert werden kann.

Ersetzen Sie <container_id_or_name> durch die tatsächliche ID oder den Namen Ihres Containers aus der docker ps-Ausgabe:

docker kill <container_id_or_name>

Nach Ausführung dieses Befehls sollte der Container gestoppt sein. Sie können dies mit erneutem docker ps überprüfen. Der Container sollte nicht mehr in der Liste der aktiven Container erscheinen.

Um den beendeten Container anzuzeigen, verwenden Sie docker ps -a. Sein Status sollte nun "Exited" lauten.

Einen weiteren Container erstellen und ausführen

Im vorherigen Schritt haben wir einen laufenden Container mit dem Standardsignal beendet. In diesem Schritt werden wir einen weiteren Container erstellen und ausführen, den wir in den folgenden Schritten verwenden werden, um das Beenden eines Containers mit benutzerdefinierten Signalen zu demonstrieren.

Wir werden erneut einen Container im Detached-Modus mit dem ubuntu-Image und dem Befehl sleep infinity starten, genau wie zuvor.

docker run -d ubuntu sleep infinity

Dieser Befehl startet einen neuen Container im Hintergrund, der unbegrenzt läuft. Docker gibt die neue Container-ID aus.

Um zu bestätigen, dass der Container läuft, verwenden Sie den Befehl docker ps:

docker ps

Sie sollten den neuen Container mit dem Status "Up" in der Liste sehen. Notieren Sie sich die CONTAINER ID oder den NAMES-Eintrag dieses Containers. Wir werden diese ID oder diesen Namen in den nächsten Schritten verwenden, um den Container mit verschiedenen Signalen zu beenden.

Dieser Container ist nun bereit, um das Senden verschiedener Signale zu üben.

Container mit benutzerdefiniertem Signal (per Name) beenden

Im vorherigen Schritt haben wir einen Container gestartet, der aktuell läuft. In diesem Schritt lernen wir, wie man diesen Container mit einem spezifischen Signal (angegeben durch seinen Namen) beendet.

Der docker kill-Befehl ermöglicht es, ein bestimmtes Signal an den Hauptprozess innerhalb eines Containers zu senden. Standardmäßig sendet er SIGKILL, aber Sie können auch andere Signale angeben. Ein häufig verwendetes Signal für das geordnete Herunterfahren von Anwendungen ist SIGTERM. SIGTERM ist ein Signal, das einen Prozess zur Beendigung auffordert. Im Gegensatz zu SIGKILL können Prozesse SIGTERM abfangen und Bereinigungsoperationen durchführen, bevor sie beendet werden.

Zuerst ermitteln Sie die Container-ID oder den Namen des laufenden Containers aus dem vorherigen Schritt mit docker ps:

docker ps

Verwenden Sie nun den docker kill-Befehl mit dem -s-Flag, um den Signalnamen anzugeben. Wir verwenden SIGTERM. Ersetzen Sie <container_id_or_name> durch die tatsächliche ID oder den Namen Ihres laufenden Containers:

docker kill -s SIGTERM <container_id_or_name>

Dieser Befehl sendet das SIGTERM-Signal an den Hauptprozess des angegebenen Containers. Wenn die Anwendung im Container dafür ausgelegt ist, SIGTERM zu verarbeiten, wird sie versuchen, sich ordnungsgemäß zu beenden. Falls sie SIGTERM nicht behandelt oder innerhalb eines bestimmten Timeouts nicht beendet, wird Docker schließlich ein SIGKILL senden, um die Beendigung zu erzwingen.

Um zu überprüfen, ob der Container gestoppt wurde, führen Sie erneut docker ps aus:

docker ps

Der Container sollte nicht mehr in der Liste der laufenden Container erscheinen. Sie können auch docker ps -a verwenden, um seinen Status anzuzeigen, der nun "Exited" sein sollte.

Container mit benutzerdefiniertem Signal (per Nummer) beenden

Im vorherigen Schritt haben wir einen Container mit einem Signalnamen (SIGTERM) beendet. In diesem Schritt lernen wir, wie man einen Container mit einer Signalnummer beendet.

Jedes Signal hat eine entsprechende Nummer. Beispielsweise ist SIGKILL Signal 9 und SIGTERM Signal 15. Sie können eine Liste der Signale und ihrer Nummern auf einem Linux-System mit dem Befehl kill -l anzeigen:

kill -l

Dieser Befehl gibt eine Liste der Signalnamen und ihrer zugehörigen Nummern aus.

Lassen Sie uns nun einen weiteren Container starten, der wie in den vorherigen Schritten aktiv bleibt:

docker run -d ubuntu sleep infinity

Ermitteln Sie die Container-ID oder den Namen dieses neuen laufenden Containers mit docker ps:

docker ps

Nun verwenden wir den docker kill-Befehl mit dem -s-Flag, aber diesmal geben wir die Signalnummer statt des Namens an. Wir verwenden Signalnummer 9, das SIGKILL entspricht. Ersetzen Sie <container_id_or_name> durch die tatsächliche ID oder den Namen Ihres laufenden Containers:

docker kill -s 9 <container_id_or_name>

Dieser Befehl sendet das SIGKILL-Signal (Nummer 9) an den Hauptprozess des angegebenen Containers. Wie bereits erwähnt, beendet SIGKILL den Prozess sofort.

Um zu überprüfen, ob der Container gestoppt wurde, führen Sie erneut docker ps aus:

docker ps

Der Container sollte nicht mehr in der Liste der laufenden Container erscheinen. Sie können auch docker ps -a verwenden, um seinen Status anzuzeigen, der nun "Exited" sein sollte.

Die Verwendung von Signalnummern kann in Skripten oder wenn Sie präzise das zu sendende Signal angeben müssen, nützlich sein.

Zusammenfassung

In diesem Lab haben wir die grundlegenden Schritte zur Verwaltung von Docker-Containern mit dem Befehl docker container kill gelernt. Wir begannen damit, einen einfachen Container basierend auf dem ubuntu-Image zu erstellen und auszuführen, einen grundlegenden Befehl auszuführen und seinen beendeten Status mit docker ps -a zu beobachten.

Anschließend haben wir untersucht, wie ein laufender Container beendet werden kann. Zuerst haben wir gezeigt, wie ein Container mit dem Standardsignal beendet wird, und dann die Flexibilität des docker container kill-Befehls weiter erkundet, indem wir Container sowohl mit benutzerdefinierten Signalnamen als auch ihren entsprechenden numerischen Werten beendet haben. Diese praktische Übung vermittelte wertvolle Kenntnisse über die Steuerung des Lebenszyklus von Docker-Containern.