Unterschied zwischen Stop, Down, Up und Start in Docker Compose

  1. Unterschied zwischen docker compose stop und docker compose down
  2. Unterschied zwischen docker compose start und docker compose up
Unterschied zwischen Stop, Down, Up und Start in Docker Compose

Docker Compose hat mehrere ähnliche Befehle, funktioniert aber auf ganz andere Weise. Einige Beispiele sind die Befehle docker compose stop und docker compose down sowie die Befehle docker compose start und docker compose up.

In diesem Artikel werden ihre Unterschiede entsprechend erörtert.

Unterschied zwischen docker compose stop und docker compose down

Nutzung des docker compose stop

Die Hauptfunktion der Ausführung des Befehls docker compose stop besteht darin, die Dienste eines laufenden Containers zu stoppen. Der Befehl stoppt unsere Container, löscht sie aber nicht unbedingt.

Der folgende Befehl stoppt beispielsweise alle Container, wenn wir keinen Containernamen oder keine ID angeben:

docker compose stop

Ausgang:

Going to stop file, web, test
Stopping file ... done
Stopping web ... done
Stopping test ... done

Wir können angeben, welcher Container gestoppt werden soll, indem wir einen Containernamen oder eine ID angeben:

docker compose stop file

Ausgang:

Going to stop file
Stopping file ... done

Außerdem können wir beim Ausführen von docker compose stop ein Shutdown-Timeout angeben. Docker wartet normalerweise 10 Sekunden, bevor es unseren Container stoppt.

Wenn wir beispielsweise wissen, dass unser Container beim Stoppen möglicherweise etwas mehr Zeit benötigt, möchten wir diesen Timeout-Wert möglicherweise erhöhen, wie unten gezeigt.

docker compose stop file -t 60

Verwendung des docker compose down

Andererseits gibt uns der Befehl docker compose down einen zusätzlichen Schritt im Prozess. Der besagte Befehl stoppt und löscht den Container und die darin ausgeführten Dienste; die Löschung umfasst sowohl den Container als auch die Netzwerke.

Das docker compose down verhält sich ähnlich mit docker stop <container name or id> und docker <prune or rm>, wenn es nacheinander ausgeführt wird. Wir können sagen, dass der Befehl docker compose down eine kleine Abkürzung von zwei kombinierten Befehlen ist.

Anstatt also die beiden folgenden Befehle auszuführen:

docker compose stop file && docker compose rm -f

Wir können stattdessen docker compose down verwenden.

docker compose down file

Wir können noch eine Stufe höher gehen, indem wir ein -v- oder --volumes-Flag an unseren docker compose down-Befehl anhängen. Der Befehl stoppt und entfernt Container, ihre Netzwerke und die angehängten Volumes, wenn er ausgeführt wird.

Mit der besagten Flag-Ergänzung haben wir drei Befehle zu nur einem Befehl zusammengefasst.

docker compose down file -v

Wir können den Befehl docker compose down nicht nur für Container, sondern auch für Images verwenden. Zum Beispiel können wir den Befehl docker compose down --rmi <all or local> ausführen, um Bilder zu entfernen.

Der Befehl ähnelt dem Befehl docker rmi, wenn er im nativen Docker verwendet wird.

Unterschied zwischen docker compose start und docker compose up

Nutzung des docker compose start

Dasselbe gilt für unseren vorherigen Abschnitt, die Befehle docker compose start und docker compose up klingen ähnlich, funktionieren aber unterschiedlich. Beispielsweise startet der Befehl docker compose start einen bestimmten Container neu, der zuvor gestoppt wurde.

docker compose start file

Außerdem funktioniert der besagte Befehl nur für bereits erstellte Container.

Wie können wir also einen nicht erstellten Container direkt starten? Wir können den folgenden Befehl unten verwenden.

Nutzung des docker compose up

Der Befehl docker compose up startet einen neuen Container basierend auf der Datei docker-compose.yml. Es ähnelt dem Ausführen von docker create und docker start, wenn sie nacheinander ausgeführt werden.

Da wir eine YAML-Datei verwenden, können wir mehrere Container mit nur einem Befehl erstellen und starten.

docker compose up

Ausgang:

Creating file
Creating web
Creating test

Wenn wir docker compose up verwenden und Änderungen in der YAML-Quelldatei vorgenommen werden, werden die auf dieser YAML-Datei basierenden Container gestoppt und neu erstellt.

Um dies zu vermeiden, können wir die Option –-no-recreate wie unten gezeigt während docker compose up verwenden. Zusammenfassend lässt sich sagen, dass der Befehl, wenn der Container bereits vorhanden ist, ihn nicht neu erstellt.

docker-compose up -d --no-recreate

Zusätzlich können wir, genau wie bei docker compose stop, einen Timeout-Wert angeben.

docker-compose up -d -t 30

Wir können auch sagen, dass dies das Hauptgegenstück des Befehls docker run ist, wenn ein neuer Container in einer Vanilla-Docker-Umgebung ausgeführt und gestartet wird.

Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Verwandter Artikel - Docker Compose