Ratgeber/Docker-Container stoppen

Docker-Container auf dem Mac stoppen, einzeln oder alle

Atta 🐬

Gründer, Vitals

Veröffentlicht

Kurze Antwort

Um einen Docker-Container zu stoppen, führe docker stop gefolgt von seinem Namen oder seiner ID aus; docker ps listet sie auf. Um alle laufenden Container zu stoppen, führe docker stop $(docker ps -q) aus. In einem Compose-Projekt stoppt docker compose stop seine Container, und docker compose down entfernt sie zusätzlich. docker stop bittet den Container, sich zu beenden, und erzwingt es nach 10 Sekunden. Ein Container, der wiederkommt, hat eine Restart-Policy; schalte sie mit docker update --restart=no aus. Vitals, ein Systemmonitor für den Mac, stoppt Container direkt aus der Menüleiste: Seine Container-Liste zeigt den Speicher jedes Containers, und ein Klick stoppt ihn nach einer Rückfrage.

So stoppst du Docker-Container im Terminal

  1. 01 Führe docker ps aus, um die laufenden Container mit ihren Namen und IDs aufzulisten.
  2. 02 Stoppe einen mit docker stop und seinem Namen, zum Beispiel docker stop web-1. Du kannst in einem Befehl mehrere nennen.
  3. 03 Stoppe alle laufenden Container mit docker stop $(docker ps -q). docker ps -q gibt nur die IDs aus, und docker stop nimmt sie alle.
  4. 04 Führe bei einem Compose-Projekt in seinem Ordner docker compose stop aus, um seine Dienste zu stoppen, oder docker compose down, um sie zu stoppen und die Container und das Netzwerk des Projekts zu entfernen. Volumes bleiben, außer du fügst -v hinzu.
  5. 05 Führe docker ps noch einmal aus. Ein Container, der noch aufgelistet ist, fährt noch herunter, und einer, der einen Moment später wieder da ist, hat eine Restart-Policy.

Dieselben Befehle funktionieren mit OrbStack, Colima und Rancher Desktop, wenn der Befehl docker auf sie zeigt. Podman hat podman stop, und podman stop -a stoppt alle.

Einen Container zu stoppen beendet seine Prozesse und behält alles andere, seine Dateien, Einstellungen und Volumes, bereit für docker start. Deshalb ist es der sichere Weg, Speicher und CPU von einem Container zurückzuholen, den du nicht nutzt. Die Tabelle unten vergleicht es mit den Befehlen, zu denen man stattdessen oft greift.

docker stop, kill, pause, rm und compose down

BefehlWas er tutNutze ihn, wenn
docker stop Sendet SIGTERM, dann nach 10 Sekunden SIGKILL Fast immer: Die App kann fertig schreiben und ihre Verbindungen schließen
docker kill Sendet sofort SIGKILL Ein Container ignoriert docker stop
docker pause Friert die Prozesse ein, die ihren Speicher behalten Du willst eine Weile die CPU zurück, nicht den Speicher
docker rm Entfernt einen gestoppten Container oder mit -f einen laufenden Du bist fertig damit; benannte Volumes bleiben
docker compose stop Stoppt die Container eines Projekts und behält sie Du startest dasselbe Projekt bald wieder
docker compose down Stoppt und entfernt die Container und das Netzwerk Du willst beim nächsten Mal sauber starten; füge -v hinzu, um auch Volumes zu entfernen

Warum ein gestoppter Container wieder startet

Einen Container mit Restart-Policy startet Docker wieder. Mit always kommt ein Container, den du gestoppt hast, beim nächsten Start von Docker Desktop zurück, sodass Container, die du gestern gestoppt hast, nach einem Neustart wieder laufen. Mit unless-stopped bleibt ein gestoppter Container gestoppt. Compose-Dateien setzen restart: always oft bei Datenbanken und Caches.

Um die Policy eines Containers zu sehen, führe docker inspect --format '{{.HostConfig.RestartPolicy.Name}}' gefolgt von seinem Namen aus. Um sie auszuschalten, führe docker update --restart=no mit dem Namen aus oder ändere restart: in der Compose-Datei.

Wenn docker stop 10 Sekunden dauert

docker stop wartet nach SIGTERM darauf, dass sich der Hauptprozess des Containers beendet. Ein Prozess, der das Signal ignoriert, oft ein Shell-Skript, das es nicht weitergibt, hält das Stoppen die vollen 10 Sekunden auf, bevor Docker ihn beendet. docker stop -t 2 verkürzt die Wartezeit. Wird das Image korrigiert, stoppt es sofort: Starte die App im Entrypoint-Skript mit exec oder setze init: true beim Dienst in Compose.

Container stoppen und den Speicher zurückbekommen

Auf einem Mac laufen Container in einer einzigen virtuellen Linux-Maschine. Sie zu stoppen gibt ihren Speicher darin frei, aber die virtuelle Maschine hält diesen Speicher womöglich weiter, deshalb kann die Aktivitätsanzeige noch immer einen großen „Virtual Machine Service for Docker“ zeigen. „Resource Saver“ oder das Beenden von Docker Desktop gibt ihn an macOS zurück; die Einstellungen stehen unter Docker braucht zu viel Speicher.

Container ohne Terminal stoppen

Die Ansicht „Containers“ in Docker Desktop hat bei jedem Container und jedem Compose-Projekt eine Stopp-Taste. Sie liegt im Fenster von Docker Desktop, du musst die App also öffnen. Menüleisten-Apps wie Captain listen die Container unter einem Symbol in der Menüleiste auf, jeweils mit Start und Stopp. Vitals macht dasselbe aus seiner Menüleiste und ergänzt, was keine davon zeigt: wie viel Speicher und CPU jeder Container nutzt, damit du weißt, welchen du stoppen solltest.

Was Vitals ergänzt

Vitals stoppt Container direkt aus der Menüleiste des Mac, mit ihrem Speicher im Blick.

  • Die Container-Liste im Menü: jeder laufende Container mit seinem Compose-Projekt, seinem Image und einem Balken für seinen Speicher
  • Zeige auf einen und klicke auf das ×, das erscheint. Die Zeile fragt nach und stoppt ihn dann so wie docker stop, mit 10 Sekunden zum Herunterfahren
  • Wähle im Tab „Container“ des Fensters mehrere aus und klicke bei gedrückter ctrl-Taste, um sie zusammen zu stoppen, oder klicke bei gedrückter ctrl-Taste auf ein Compose-Projekt und wähle „Alle stoppen“
  • Speicher, CPU, Netzwerk, Festplatte und veröffentlichte Ports für jeden Container, mit Docker Desktop, OrbStack, Colima, Rancher Desktop und Podman

Gut zu wissen

  • Vitals fragt nach, bevor es etwas stoppt, und startet, entfernt oder ändert nie einen Container.
  • Einen Container mit Restart-Policy kann seine Engine wieder starten. Das Fenster sagt das, wenn es nachfragt.
  • Lehnt die Engine ab oder antwortet nicht, sagt die Zeile, dass der Container noch läuft.
  • Die Container-Liste erscheint, solange eine Engine läuft.
Vitals kaufen für $9 $9 zur Einführung, danach $29. 14 Tage Geld zurück.

Häufige Fragen

Wie stoppe ich alle Docker-Container auf einmal?

Führe docker stop $(docker ps -q) aus. Es listet die IDs aller laufenden Container und stoppt jeden davon. Wähle sie in Vitals im Tab „Container“ aus und klicke bei gedrückter ctrl-Taste, um sie zusammen zu stoppen.

Was ist der Unterschied zwischen docker stop und docker kill?

docker stop sendet SIGTERM und wartet bis zu 10 Sekunden, bevor es den Container mit SIGKILL zwingt. docker kill sendet sofort SIGKILL, die App hat also keine Chance, fertig zu schreiben oder ihre Verbindungen zu schließen.

Was ist der Unterschied zwischen docker compose stop und down?

docker compose stop stoppt die Container und behält sie, bereit für docker compose start. docker compose down stoppt sie und entfernt die Container und das Netzwerk des Projekts; Volumes bleiben, außer du fügst -v hinzu.

Warum startet mein Docker-Container wieder, nachdem ich ihn gestoppt habe?

Er hat die Restart-Policy always, deshalb startet Docker ihn wieder, wenn Docker Desktop startet. Führe docker update --restart=no mit seinem Namen aus oder ändere restart: in der Compose-Datei.

Löscht das Stoppen eines Containers seine Daten?

Nein. Ein gestoppter Container behält seine Dateien und Volumes, und docker start führt ihn wieder aus. docker rm entfernt den Container; benannte Volumes bleiben, bis du sie entfernst.

Kann ich Docker-Container aus der Menüleiste des Mac stoppen?

Ja, mit Vitals. Sein Menü in der Menüleiste listet die laufenden Container mit ihrem Speicher, und ein Klick stoppt einen Container nach einer Rückfrage. Es funktioniert mit Docker Desktop, OrbStack, Colima, Rancher Desktop und Podman.

Im Glossar

Weitere Ratgeber