GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

So stoppen Sie Docker-Container

In diesem Docker-Tutorial werden Methoden erläutert, um einen einzelnen Docker-Container, mehrere Docker-Container oder alle laufenden Docker-Container gleichzeitig zu stoppen. Außerdem erfahren Sie, wie Sie einen Docker-Container elegant anhalten.

Um einen Docker-Container zu stoppen, müssen Sie lediglich die Container-ID oder den Containernamen wie folgt verwenden:

docker stop container_ID_or_name

Sie können auch den Befehl docker container stop container_id_or_name verwenden, aber das ist ein zusätzliches Wort im Befehl und bietet keine zusätzlichen Vorteile, also bleiben Sie bei docker stop.

Aber es gibt noch mehr zum Stoppen eines Docker-Containers, das Sie wissen sollten, besonders wenn Sie ein Docker-Anfänger sind.

Praktische Beispiele zum Stoppen des Docker-Containers

In diesem Tutorial werde ich verschiedene Aspekte zum Stoppen eines Docker-Containers besprechen:

  • Stoppen Sie einen Docker-Container
  • Mehrere Docker-Container gleichzeitig stoppen
  • Alle Docker-Container mit einem bestimmten Image stoppen
  • Alle laufenden Docker-Container auf einmal stoppen
  • Einen Docker-Container ordnungsgemäß stoppen

Bevor Sie das sehen, sollten Sie wissen, wie Sie den Containernamen oder die ID erhalten.

Mit docker ps können Sie alle laufenden Docker-Container auflisten Befehl. Ohne Optionen zeigt der Befehl docker ps nur die laufenden Container an.

[email protected]:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
1bcf775d8cc7        ubuntu              "bash"              8 minutes ago       Up About a minute                       container-2
94f92052f55f        debian              "bash"              10 minutes ago      Up 10 minutes                           container-1

Die Ausgabe gibt Ihnen auch den Containernamen und die Container-ID. Sie können einen dieser beiden verwenden, um einen Container zu stoppen.

Kommen wir nun zum Stoppen von Containern.

1. Stoppen Sie einen Docker-Container

Um einen bestimmten Container zu stoppen, verwenden Sie seine ID oder seinen Namen mit dem docker stop-Befehl:

docker stop container_name_or_ID

Die Ausgabe hätte aussagekräftiger sein sollen, zeigt aber nur den Containernamen oder die ID, je nachdem, was Sie angegeben haben:

[email protected]:~$ docker stop 1bcf775d8cc7
1bcf775d8cc7

Sie können den Befehl docker stop für einen bereits gestoppten Container verwenden. Es werden keine Fehler oder eine andere Ausgabe ausgegeben.

Sie können überprüfen, ob der Container gestoppt wurde, indem Sie den Befehl docker ps -a verwenden. Die Option -a zeigt alle Container an, ob sie laufen oder gestoppt sind.

[email protected]:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
1bcf775d8cc7        ubuntu              "bash"              19 minutes ago      Exited (0) About a minute ago                       container-2
94f92052f55f        debian              "bash"              29 minutes ago      Up 29 minutes                                   container-1

Wenn der Status Beendet ist, bedeutet dies, dass der Container nicht mehr ausgeführt wird.

2. Stoppen Sie mehrere Docker-Container

Sie können auch mehrere Docker-Container gleichzeitig stoppen. Sie müssen nur die Containernamen und -IDs angeben.

docker stop container_id_or_name_1 container_id_or_name_2 container_id_or_name_3

Wie zuvor zeigt die Ausgabe einfach den Namen oder die ID der Container:

[email protected]:~$ docker stop container-1 container-2 container-3
container-1
container-2
container-3

3. Stoppen Sie alle mit einem Bild verknüpften Container

Bisher haben Sie gesehen, dass Container durch explizite Nennung ihres Namens oder ihrer ID gestoppt wurden.

Was ist, wenn Sie alle laufenden Container eines bestimmten Docker-Images stoppen möchten? Stellen Sie sich ein Szenario vor, in dem Sie ein Docker-Image entfernen möchten, aber alle zugehörigen laufenden Container stoppen müssen.

Sie können die Containernamen oder IDs einzeln angeben, aber das ist zeitaufwändig. Was Sie tun können, ist, alle laufenden Container basierend auf ihrem Basis-Image zu filtern.

Ersetzen Sie einfach IMAGE_NAME durch den Namen Ihres Docker-Images und Sie sollten in der Lage sein, alle laufenden Container zu stoppen, die diesem Image zugeordnet sind.

docker ps -q --filter ancestor=IMAGE_NAME | xargs docker stop

Die Option -q zeigt nur die Container-ID. Dank des wunderbaren xargs-Befehls werden diese Container-IDs als Argument an den Docker-Stopp geleitet.

4. Stoppen Sie alle laufenden Docker-Container

Es kann vorkommen, dass Sie alle laufenden Container stoppen müssen. Wenn Sie beispielsweise alle Container in Docker entfernen möchten, sollten Sie diese vorher stoppen.

Dazu können Sie etwas Ähnliches wie im vorherigen Abschnitt verwenden. Entfernen Sie einfach den Bildteil.

docker ps -q | xargs docker stop

5. Beenden Sie einen Container ordnungsgemäß

Um ehrlich zu sein, stoppt Docker einen Container standardmäßig ordnungsgemäß. Wenn Sie den Befehl docker stop verwenden, gibt er dem Container 10 Sekunden Zeit, bevor er zwangsweise beendet wird.

Das bedeutet nicht, dass es immer 10 Sekunden dauert, um einen Container zu stoppen. Wenn der Container einige Prozesse ausführt, hat er nur 10 Sekunden Zeit, um den Prozess zu stoppen und zu beenden.

Docker stop command sendet zuerst den SIGTERM-Befehl. Wird der Container in dieser Zeit angehalten, sendet er den SIGKILL-Befehl. Ein Prozess kann das SIGTERM ignorieren, aber SIGKILL beendet den Prozess sofort.

Ich hoffe, Sie kennen den Unterschied zwischen SIGTERM und SIGKILL.

Was ist SIGTERM? Was ist der Unterschied zwischen SIGKILL und SIGTERM? Sowohl SIGTERM als auch SIGKILL werden zum Beenden eines Prozesses in Linux verwendet. Sie sollten jedoch lieber SIGTERM verwenden. Hier ist der Grund! Linux-HandbuchAbhishek Prakash

Sie können diese Gnadenfrist von 10 Sekunden mit der Option -t ändern. Angenommen, Sie möchten 30 Sekunden warten, bevor Sie den Container stoppen:

docker stop -t 30 container_name_or_id

Am Ende…

Ich denke, dass diese vielen Informationen das Thema sehr gut abdecken. Sie wissen viel über das Stoppen eines Docker-Containers.

Bleiben Sie dran für weitere Docker-Tipps und Tutorials. Wenn Sie Fragen oder Anregungen haben, lassen Sie es mich bitte im Kommentarbereich wissen.


Docker
  1. So aktualisieren Sie laufende Docker-Container automatisch

  2. So verwenden Sie Docker Compose

  3. So verbinden Sie Docker-Container

  4. So übergeben Sie Umgebungsvariablen an Docker-Container

  5. So listen Sie Docker-Container auf

So führen Sie Docker-Container aus

So entfernen Sie Docker-Container

So benennen oder umbenennen Sie Docker-Container

So verwalten Sie Docker-Container

Docker-Container auflisten / starten / stoppen / löschen

So konfigurieren Sie Netzwerk-Namespaces in Docker-Containern