Services mit alternativem Signal über docker compose kill -s gewaltsam stoppen
In diesem Schritt untersuchen wir, wie der Befehl docker compose kill
mit dem -s
-Flag verwendet wird, um ein spezifisches Signal an die Container zu senden. Standardmäßig sendet docker compose kill
ein SIGKILL
-Signal, das den Prozess sofort beendet. In manchen Fällen möchten Sie jedoch ein anderes Signal wie SIGTERM
senden, das eine Aufforderung zur ordnungsgemäßen Beendigung des Prozesses darstellt.
Stellen Sie zunächst sicher, dass unsere Services laufen. Navigieren Sie zum Projektverzeichnis und starten Sie die Services im Detached-Modus.
cd ~/project/my-compose-app
docker-compose up -d
Überprüfen Sie mit docker ps
, dass beide Container laufen.
docker ps
Nun stoppen wir alle Services mit dem SIGTERM
-Signal. Dazu verwenden wir das -s
-Flag gefolgt vom Signalnamen.
docker-compose kill -s SIGTERM
Sie sollten eine Ausgabe sehen, die anzeigt, dass die Container mit dem angegebenen Signal beendet werden.
Um zu bestätigen, dass die Container gestoppt wurden, verwenden Sie den Befehl docker ps
.
docker ps
Weder der web
- noch der redis
-Container sollten als laufend aufgeführt sein.
Mit docker ps -a
können Sie sehen, dass die Container beendet wurden.
docker ps -a
Die Möglichkeit, verschiedene Signale zu senden, ist nützlich für kontrolliertere Shutdowns, da Anwendungen in den Containern so gegebenenfalls Aufräumarbeiten durchführen können, bevor sie beendet werden (sofern sie für die Verarbeitung dieser Signale konfiguriert sind).
Abschließend können Sie mit dem Befehl docker compose down
die gestoppten Container und das von Docker Compose erstellte Netzwerk bereinigen.
docker-compose down
Dieser Befehl stoppt und entfernt die Container, Netzwerke und Volumes, die in der docker-compose.yml
-Datei definiert sind.