Gidsen/Zo stop je Docker-containers
Zo stop je Docker-containers op een Mac, één of allemaal
Kort antwoord
Om één Docker-container te stoppen, voer je docker stop uit gevolgd door de naam of ID; docker ps geeft een lijst. Om elke draaiende container te stoppen, voer je docker stop $(docker ps -q) uit. In een Compose-project stopt docker compose stop de containers en verwijdert docker compose down ze ook. docker stop vraagt de container af te sluiten en dwingt hem na 10 seconden. Een container die terugkomt, heeft een restart policy; zet die uit met docker update --restart=no. Vitals, een systeemmonitor voor de Mac, stopt containers vanuit de menubalk: de lijst Containers toont het geheugen van elke container, en met één klik stop je er een nadat Vitals het je heeft gevraagd.
Zo stop je Docker-containers vanuit Terminal
- 01 Voer
docker psuit voor een lijst van de draaiende containers, met hun namen en ID’s. - 02 Stop er een met
docker stopen de naam, bijvoorbeelddocker stop web-1. Je kunt er meerdere in één opdracht noemen. - 03 Stop elke draaiende container met
docker stop $(docker ps -q).docker ps -qgeeft alleen de ID’s, en docker stop neemt ze allemaal. - 04 Voer bij een Compose-project
docker compose stopuit in de map ervan om de services te stoppen, ofdocker compose downom ze te stoppen en de containers en het netwerk van het project te verwijderen. Volumes blijven, tenzij je-vtoevoegt. - 05 Voer
docker psopnieuw uit. Een container die er nog staat, is nog aan het afsluiten, en een die even later terug is, heeft een restart policy.
Dezelfde opdrachten werken met OrbStack, Colima en Rancher Desktop als de opdracht docker ernaar wijst. Podman heeft podman stop, en podman stop -a stopt ze allemaal.
Een container stoppen beëindigt zijn processen en bewaart al het andere, zijn bestanden, instellingen en volumes, klaar voor docker start. Daardoor is het de veilige manier om geheugen en CPU terug te krijgen van een container die je niet gebruikt. De tabel hieronder vergelijkt het met de opdrachten die mensen ernaast gebruiken.
docker stop, kill, pause, rm en compose down
| Opdracht | Wat het doet | Gebruik het als |
|---|---|---|
| docker stop | Stuurt SIGTERM, en na 10 seconden SIGKILL | Bijna altijd: de app kan klaar zijn met schrijven en zijn verbindingen sluiten |
| docker kill | Stuurt meteen SIGKILL | Een container negeert docker stop |
| docker pause | Bevriest de processen, die hun geheugen houden | Je wilt de CPU een tijdje terug, niet het geheugen |
| docker rm | Verwijdert een gestopte container, of met -f een draaiende | Je bent er klaar mee; benoemde volumes blijven |
| docker compose stop | Stopt de containers van een project en bewaart ze | Je start hetzelfde project binnenkort weer |
| docker compose down | Stopt en verwijdert de containers en het netwerk | Je wilt de volgende keer schoon beginnen; voeg -v toe om ook volumes te verwijderen |
Waarom een gestopte container opnieuw start
Een container met een restart policy wordt door Docker opnieuw gestart. Met always komt een container die je hebt gestopt terug de volgende keer dat Docker Desktop start, dus containers die je gisteren stopte, draaien na een herstart weer. Met unless-stopped blijft een container die je stopte, gestopt. Compose-bestanden zetten vaak restart: always op databases en caches.
Om de policy van een container te zien, voer je docker inspect --format '{{.HostConfig.RestartPolicy.Name}}' uit gevolgd door de naam. Om hem uit te zetten, voer je docker update --restart=no uit met de naam, of verander je restart: in het Compose-bestand.
Als docker stop 10 seconden duurt
docker stop wacht na SIGTERM tot het hoofdproces van de container stopt. Een proces dat het signaal negeert, vaak een shellscript dat het niet doorgeeft, houdt het stoppen de volle 10 seconden op voordat Docker het afschiet. docker stop -t 2 maakt het wachten korter. Pas je de image aan, dan stopt hij meteen: start de app met exec in het entrypoint-script, of zet init: true op de service in Compose.
Containers stoppen, en het geheugen terugkrijgen
Op een Mac draaien containers in één virtuele Linux-machine. Stop je ze, dan komt hun geheugen daarbinnen vrij, maar de virtuele machine kan dat geheugen blijven vasthouden, dus Activiteitenweergave kan nog steeds een grote Virtual Machine Service for Docker tonen. Resource Saver, of Docker Desktop stoppen, geeft het terug aan macOS; zie Docker gebruikt te veel geheugen voor de instellingen.
Containers stoppen zonder Terminal
De weergave Containers van Docker Desktop heeft een Stop-knop bij elke container en bij elk Compose-project. Die staat in het venster van Docker Desktop, dus je opent de app om hem te gebruiken. Menubalkapps zoals Captain tonen de containers onder een symbool in de menubalk, met starten en stoppen voor elke container. Vitals doet hetzelfde vanuit zijn menubalk, en voegt toe wat geen van hen laat zien: hoeveel geheugen en CPU elke container gebruikt, zodat je weet welke je moet stoppen.
Wat Vitals toevoegt
Vitals stopt containers vanuit de menubalk van de Mac, met hun geheugen in beeld.
- De lijst Containers in het uitklapmenu: elke draaiende container met zijn Compose-project, zijn image en een balk voor zijn geheugen
- Wijs er een aan en klik op de × die verschijnt. De regel vraagt om bevestiging en stopt hem dan zoals
docker stopdoet, met 10 seconden om af te sluiten - Selecteer op het tabblad Containers van het venster er meerdere en Control-klik om ze samen te stoppen, of Control-klik op een Compose-project en kies ‘Stop alles’
- Geheugen, CPU, netwerk, schijf en gepubliceerde poorten voor elke container, met Docker Desktop, OrbStack, Colima, Rancher Desktop en Podman
Goed om te weten
- Vitals vraagt het je voordat het iets stopt, en start, verwijdert of wijzigt nooit een container.
- Een container met een restart policy kan door zijn engine opnieuw worden gestart. Het venster zegt dat erbij als het om bevestiging vraagt.
- Weigert de engine of antwoordt hij niet, dan zegt de regel dat de container nog draait.
- De lijst Containers verschijnt zolang er een engine draait.
Vragen die mensen stellen
Hoe stop ik alle Docker-containers tegelijk?
Voer docker stop $(docker ps -q) uit. Dat geeft de ID’s van elke draaiende container en stopt ze allemaal. Selecteer ze in Vitals op het tabblad Containers en Control-klik om ze samen te stoppen.
Wat is het verschil tussen docker stop en docker kill?
docker stop stuurt SIGTERM en wacht tot 10 seconden voordat het de container met SIGKILL dwingt. docker kill stuurt meteen SIGKILL, dus de app krijgt geen kans om klaar te zijn met schrijven of zijn verbindingen te sluiten.
Wat is het verschil tussen docker compose stop en down?
docker compose stop stopt de containers en bewaart ze, klaar voor docker compose start. docker compose down stopt ze en verwijdert de containers en het netwerk van het project; volumes blijven, tenzij je -v toevoegt.
Waarom start mijn Docker-container opnieuw nadat ik hem heb gestopt?
Hij heeft de restart policy always, dus Docker start hem opnieuw als Docker Desktop start. Voer docker update --restart=no uit met de naam, of verander restart: in het Compose-bestand.
Verwijdert een container stoppen zijn gegevens?
Nee. Een gestopte container houdt zijn bestanden en volumes, en docker start draait hem opnieuw. docker rm verwijdert de container; benoemde volumes blijven tot je ze verwijdert.
Kan ik Docker-containers stoppen vanuit de menubalk van de Mac?
Ja, met Vitals. Het uitklapmenu in de menubalk toont de draaiende containers met hun geheugen, en met één klik stop je een container nadat Vitals het je heeft gevraagd. Het werkt met Docker Desktop, OrbStack, Colima, Rancher Desktop en Podman.
In de woordenlijst
Meer gidsen
- Waarom is mijn Mac zo traag
- Wat trekt de batterij van mijn Mac leeg
- Welke app gebruikt mijn CPU of geheugen
- Waarom gaat mijn Mac niet in sluimerstand
- Chrome gebruikt te veel geheugen
- Waarom maken de ventilatoren van mijn Mac zoveel lawaai
- Zo regel je de ventilatorsnelheid op een Mac
- Zo maak je RAM vrij op een Mac
- Docker gebruikt te veel geheugen
- Volumemixer voor Mac
- Alternatieven voor Activiteitenweergave
- Alternatieven voor iStat Menus
- Alternatieven voor Stats
- Taakbeheer voor Mac
- Beste systeemmonitors voor Mac
- Beste menubalkmonitors voor Mac
- Beste volumemixers voor Mac