Direkt zum Inhalt

Docker Alle Container anhalten: Eine Schritt-für-Schritt-Anleitung

Lerne, wie du mit einfachen Befehlen alle laufenden Docker-Container stoppen kannst. Das hilft dir, Systemressourcen zu verwalten und deine Docker-Umgebung zu optimieren.
Aktualisierte 16. Juni 2025  · 5 Min. Lesezeit

Container einzeln zu stoppen, kann deinen Entwicklungsworkflow verlangsamen und zu Fehlern führen, wenn du mit Microservices oder Multi-Container-Anwendungen jonglierst. 

In diesem Leitfaden stelle ich dir verschiedene Methoden vor, die dir helfen, alle laufenden Container zu beenden.

Am Ende dieses Tutorials wirst du in der Lage sein:  

  • Verstehen, wie Docker mit Signalen und Nachfristen umgeht
  • Alle Container mit einfachen CLI-Techniken und Filtern anhalten
  • Nutzen Sie Docker Compose und benutzerdefinierte Aliase für optimierte Arbeitsabläufe 

Die Beendigung von Docker Containern verstehen

Bevor du Container in großen Mengen stoppst, ist es hilfreich zu verstehen, wie Docker das Herunterfahren unter der Haube orchestriert.

Signalbasiertes Prozessmanagement

Docker verwendet Unix-Signale, um ein sanftes Herunterfahren anzufordern, bevor es zwangsweise beendet wird. Das Standardverhalten des Befehls docker stop ist: 

  1. Sende SIGTERM an den Hauptprozess des Containers.  
  2. Warte bis zu 10 Sekunden (konfigurierbar mit -t/--time).  
  3. Sende SIGKILL, wenn der Prozess noch nicht beendet wurde.
  • SIGTERM: Bittet den Prozess höflich, aufzuräumen und zu beenden.  
  • Karenzzeit: Gibt den Anwendungen Zeit, um Protokolle zu löschen, Verbindungen zu schließen oder den Status zu speichern.  
  • SIGKILL: Erzwingt die sofortige Beendigung eines nicht ansprechbaren Prozesses.

Zeitleiste zur Veranschaulichung der Stoppsignalfolge von Docker: SIGTERM, Warten, dann SIGKILL.

Mechanik der Befehlszeilenschnittstelle (CLI)

Standardmäßig bearbeitet docker stop immer nur einen Container auf einmal. Du kannst sie erweitern, um mehrere Container mit Hilfe von Shell-Funktionen anzuhalten.

# Stop a single container named my_container
docker stop my_container

Diese sendet SIGTERM an my_container und wartet die standardmäßigen 10 Sekunden, bevor sie bei Bedarf SIGKILL ausgibt.

# Stop all running containers at once
docker stop $(docker ps -q)

Hier listet docker ps -q die IDs aller laufenden Container auf; diese IDs werden an docker stop weitergegeben, das die Container der Reihe nach herunterfährt.

Terminal-Sitzung mit docker ps -q in docker stop, um alle Container herunterzufahren.

Der Screenshot eines Terminals zeigt die Ausgabe von docker ps -q, die in docker stop

Wenn du diese Konzepte genauer verstehen willst, solltest du dich mit den Konzepten der Containerisierung und Virtualisierung beschäftigen.

Vergleich zwischen Docker Stop und Docker Kill

Die Wahl zwischen einer sanften und einer erzwungenen Kündigung hilft dir, ungewollte Konsequenzen zu vermeiden.

Gnadenvolle vs. sofortige Kündigung

Befehl

Signal(e)

Verhalten

Anwendungsfall

Docker-Stop

SIGTERM → SIGKILL nach Zeitüberschreitung

Sanftes Herunterfahren mit Aufräumzeit

Routinemäßige Wartung oder Updates

docker kill

SIGKILL

Sofortige Beendigung  

Notfallsanierung von aufgehängten Containern

Signalanpassung

Beide Befehle unterstützen ein --signal Flag, um die Standardeinstellungen zu überschreiben:

# Send SIGINT instead of SIGTERM
docker stop --signal=SIGINT my_container

Die oben genannten Prozesse können SIGINT für benutzerdefinierte Aufräumarbeiten einfangen.

# Kill all containers with SIGUSR1
docker kill --signal=SIGUSR1 $(docker ps -q)

Wie du oben gesehen hast, kannst du benutzerdefinierte Signale verwenden, wenn deine Anwendung bestimmte Shutdown-Hooks implementiert.

Erweiterte Container-Stopp-Strategien

Das Filtern und Automatisieren des Containerstopps ermöglicht präzisere DevOps-Workflows, insbesondere in großen Umgebungen.  

Sobald du die Grundlagen verstanden hast, kannst du genau festlegen, welche Container du anhältst und wie du den Prozess automatisierst.

Gefilterter Containerabschluss

Mit Hilfe von Filtern kannst du Container nach Attributen wie Bildname, Status oder Labels auswählen:

# Stop containers running the my_image:latest image
docker stop $(docker ps --filter "ancestor=my_image:latest" -q)

Der obige Befehl stoppt nur Container, die auf my_image:latest basieren und ermöglicht eine gezielte Kontrolle in Projekten mit mehreren Diensten.

Anwendungsfälle:  

  • Testcontainer per Bild-Tag anhalten (--filter "ancestor=test:latest")  
  • Behälter nach Etikett anhalten (--filter "label=env=dev")

Filtern der Ausgabe von docker ps nach dem Namen des Vorgänger-Images vor dem Stoppen von Containern.

Terminal-Screenshot der docker ps --filter Nutzung

Automatisierte Bereinigung mit Docker Compose

Wenn deine Dienste in einer docker-compose.yml Datei definiert sind, stoppt ein einziger Befehl alle zugehörigen Container:

docker-compose stop

Dies berücksichtigt deine Dienstabhängigkeiten und konfigurierten Timeouts für ein sauberes Herunterfahren.

Für fortgeschrittene Techniken kannst du den Docker-Kurs für Fortgeschrittene besuchen.

Alias-gesteuerte Workflow-Optimierung

Bei sich wiederholenden Aufgaben reduzieren Shell-Aliase die Tipparbeit und den Kontextwechsel:

# Add this to ~/.bashrc or ~/.zshrc
alias ds='docker stop $(docker ps -q)'

Wenn du deine test-shell neu geladen hast, stoppt ds alle Container mit einem Tastendruck - ideal, um schnell aufzuräumen.

Das Terminal zeigt die erfolgreiche Verwendung eines benutzerdefinierten "ds"-Alias, um alle laufenden Docker-Container in Ubuntu WSL zu stoppen.

Den Alias "ds" verwenden, um alle laufenden Container in der Ubuntu WSL anzuhalten

Betriebliche Best Practices

Implementiere sichere Shutdown-Routinen und regelmäßige Bereinigungen, um deine Umgebung stabil und performant zu halten.

  • Implementiere Signalhandler in deinem Anwendungscode, um Verbindungen zu schließen und Logs zu leeren.  
  • Reserviere docker kill für Notfalleinsätze; vermeide Dateninkonsistenzen.  
  • Passe die Karenzzeiten (-t/--time) an den Bereinigungsbedarf deiner Anwendung an.  
  • Automatisiere das Aufräumen nach dem Herunterfahren mit Befehlen wie docker system prune, wie in Docker Prune beschrieben: Ein komplettes Handbuch mit praktischen Beispielen.
  • Protokolliere die Ereignisse beim Herunterfahren (Zeitstempel und Exit-Codes), um Probleme beim Beenden zu diagnostizieren.

Fehlersuche bei allgemeinen Problemen

Selbst bei einfachen Befehlen kann es zu Problemen kommen - hier erfährst du, wie du sie lösen kannst.

Zombie-Prozesse und verwaiste Volumes

Erzwungene Beendigungen können veraltete Prozesse oder verwaiste Volumes zurücklassen, die Host-Ressourcen und Speicherplatz verbrauchen. Zum Aufräumen:

# Remove dangling volumes
docker volume prune

Dies löscht alle Volumes, die von keinem Container referenziert werden.

Suche nach verweilenden Docker-Daemon-Prozessen:

ps aux | grep dockerd

Beende manuell alle verirrten dockerd Kindprozesse, wenn sie weiter bestehen.

Ein Fall aus der Praxis: In einem Projekt habe ich docker kill für einen Datenbankcontainer verwendet, als eine Migration hängen blieb. Durch den abrupten Abbruch wurde die DB daran gehindert, die Transaktionsprotokolle zu spülen, wodurch die InnoDB-Tabellen beschädigt wurden. Wir mussten die Daten aus den Backups wiederherstellen und die Binlogs erneut abspielen, was über 30 Minuten Ausfallzeit kostete. Um dies zu vermeiden, bevorzuge docker stop mit einem erweiterten Timeout oder füge in deiner Anwendung geeignete SIGTERM Handler hinzu.

Fehler bei verweigerter Erlaubnis

Das Ausführen von Docker-Befehlen ohne die richtigen Berechtigungen führt oft zu Fehlern:

  • Setze den Befehlen das Zeichen sudo voran oder führe sie als Benutzer der Gruppe docker aus.  
  • Füge deinen Benutzer zur Gruppe docker hinzu und melde dich erneut an:
sudo usermod -aG docker $USER

Nachdem du dich aus- und wieder eingeloggt hast, kannst du Docker-Befehle ohne sudo ausführen. In einer CI-Umgebung musst du sicherstellen, dass der Runner-Benutzer Mitglied einer Docker-Gruppe ist, um Pipeline-Fehler zu vermeiden.

Windows-spezifische Überlegungen

In der Windows PowerShell musst du die Unterbefehle in Klammern einschließen und als Administrator ausführen:

docker stop (docker ps -q)

Der Start der PowerShell mit erweiterten Rechten verhindert Probleme mit der Firewall oder der Zugriffskontrolle. Wenn du TLS-Handshake-Fehler siehst, überprüfe, ob die Daemon-Konfiguration von Docker Desktop zu deiner PowerShell-Umgebung passt.

Fazit

Das effiziente Stoppen aller Docker-Container spart Zeit, schont Ressourcen und minimiert menschliche Fehler in deinem Entwicklungsprozess. Du kannst eine saubere und vorhersehbare Umgebung aufrechterhalten, indem du die Signalverarbeitung von Docker verstehst, CLI-Filter einsetzt, Docker Compose verwendest und einfache Aliase erstellst. 

Im Lernpfad Containerisierung und Virtualisierung mit Docker und Kubernetes oder im Kurs Docker für Fortgeschrittene kannst du dein Wissen über Containerisierung vertiefen.

Viel Spaß beim Containerisieren - und auf saubere, effiziente Docker-Workflows!

Docker und Kubernetes beherrschen

Lerne in einem interaktiven Lernpfad die Leistungsfähigkeit von Docker und Kubernetes kennen, um Anwendungen in modernen Umgebungen zu entwickeln und einzusetzen.
Lernpfad kostenlos starten

FAQs

Welchen Exit-Code gibt docker stop zurück?

Bei Erfolg gibt docker stop den Wert 0 zurück. Ein Exit-Code ungleich Null bedeutet, dass ein oder mehrere Container nicht angehalten werden konnten.

Kann ich vor dem Ausführen des Befehls sehen, welche Container gestoppt werden sollen?

Yes-run docker ps oder docker ps -q, um laufende Container aufzulisten und IDs oder Namen zu überprüfen, bevor du sie ausführst docker stop.

Wie wirken sich die Neustartrichtlinien auf gestoppte Container aus?

Container mit einer Neustart-Richtlinie wie always werden nach dem Stoppen automatisch neu gestartet. Entferne oder ändere die Richtlinie mit docker update --restart=no , wenn du willst, dass sie angehalten bleibt.

Gibt es eine Möglichkeit, Container nach Netzwerk oder Volumen zu stoppen?

Docker filtert zwar nicht direkt nach Netzwerk oder Volumen auf docker stopkannst du docker ps --filter "network=" oder docker ps --filter "volume=" mit der Befehlssubstitution kombinieren.

Wie kann ich Docker Stop in eine CI/CD-Pipeline integrieren?

Integriere den Stop-Befehl in deine Build-Skripte oder CI-Jobs - verwende Flags wie --signal und Filter für gezielte Shutdowns und schließe dann mit Aufräumbefehlen (docker system prune) in derselben Pipeline an.

Kann ich danach alle gestoppten Container neu starten?

Ja, verwende docker start $(docker ps -a -q), um alle Container neu zu starten, auch die, die zuvor angehalten wurden.

Wird das Stoppen aller Container sie beseitigen?

Nein, durch das Anhalten von Containern werden diese nicht gelöscht. Sie bleiben auf deinem System, bis du sie mit docker rm entfernst.

Wie kann ich das tägliche Anhalten von Containern automatisieren?

Verwende einen Cron-Job mit dem Befehl docker stop $(docker ps -q), um das automatische Anhalten zu planen.

Wirkt sich Docker Stop auf Volumes oder Netzwerke aus?

Nein, das Stoppen eines Containers hat keine Auswirkungen auf angeschlossene Volumes oder Netzwerke - sie bleiben intakt.

Kann ich ausschließen, dass bestimmte Container angehalten werden?

Du kannst Container selektiv stoppen, indem du docker ps mit Filtern verwendest oder bestimmte Container-IDs von dem Befehl ausschließt.


Khalid Abdelaty's photo
Author
Khalid Abdelaty
LinkedIn

Data Engineer mit Fachkenntnissen in Python und Azure Cloud-Technologien, spezialisiert auf den Aufbau skalierbarer Datenpipelines und ETL-Prozesse. Zurzeit studiert er Informatik an der Universität Tanta und macht einen Bachelor of Science. Zertifizierter DataCamp Data Engineer mit nachgewiesener Erfahrung in Datenmanagement und Programmierung. Ehemaliger Microsoft Data Engineer Intern bei der Digital Egypt Pioneers Initiative und Microsoft Beta Student Ambassador, der technische Workshops leitet und Hackathons organisiert.

Themen

Lerne mehr über Docker mit diesen Kursen!

Lernpfad

Containerization and Virtualization with Docker and Kubernetes

0 Min.
Learn the power of Docker and Kubernetes, this interactive track will allow you to build and deploy applications in modern environments.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Die 50 besten AWS-Interview-Fragen und Antworten für 2025

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interviewfragen, zusammen mit Fragen, die auf realen Situationen basieren.
Zoumana Keita 's photo

Zoumana Keita

15 Min.

Der Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Der Blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates hat im zweiten Quartal 2023 über 20.000 Stipendien an unsere gemeinnützigen Partner vergeben. Erfahre, wie fleißige benachteiligte Lernende diese Chancen in lebensverändernde berufliche Erfolge verwandelt haben.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

15 Min.

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Der Blog

2022-2023 DataCamp Classrooms Jahresbericht

Zu Beginn des neuen Schuljahres ist DataCamp Classrooms motivierter denn je, das Lernen mit Daten zu demokratisieren. In den letzten 12 Monaten sind über 7.650 neue Klassenzimmer hinzugekommen.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 Min.

Mehr anzeigenMehr anzeigen