Unterschied zwischen Stop, Down, Up und Start in Docker Compose
-
Unterschied zwischen
docker compose stop
unddocker compose down
-
Unterschied zwischen
docker compose start
unddocker compose up
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 specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedInVerwandter Artikel - Docker Compose
- Aktualisieren Sie vorhandene Images mit Docker Compose
- Erstellen Sie Container aus neuen Images mit Docker-Compose neu
- Fügen Sie einem Dienst in Docker-Compose einen Hostnamen hinzu
- Fügen Sie einen Netzwerkmodus in Docker Compose hinzu
- Führen Sie mehrere Befehle in Docker-Compose aus
- Unterschied zwischen Docker und Docker Compose