Difficulty: beginner
Estimated Time: 10 minuten

Aan het einde van deze oefening kan je het volgende:

  • Het herstarten van een container die de status exited heeft;
  • Het verschil tussen stoppen en killen van een container;
  • Het ophalen van container metadata gebruikmakend van het docker container inspect commando;
  • Verwijderen van containers.

4. Start, stop, inspecteren en verwijderen van containers

Step 1 of 3

4.1 Starten, herstarten en stoppen van Containers

1) Start een container die in de achtergrond blijft draaien en controleer dit:

docker container run -d debian:9 ping google.com

Controleer of deze nog draait:

docker container ls -a

2) Stop de container door gebruik te maken van het docker container stop commando:

docker container stop <ID>

Controleer of de container nog draait:

docker container ls -a

Als het goed is merk je op dat het stop commando een paar seconden duurt. Dit komt doordat er eerst een SIGTERM commando naar het proces in de container wordt gestuurd. Daarna wacht Docker 10 seconden voordat hij een SIGKILL stuurt. Hij probeert dus eerst netjes het proces af te sluiten voordat hij overgaat op een KILL. De exit code die je ziet, 137 , is de exit code die je krijgt als het ping proces in de container word gekilled.

3) Start de container opnieuw met docker container start en koppel hem gelijk aan je terminal met het -a (--attach) argument:

docker container start -a <ID>

4) Ontkoppel en stop de container met CTRL-C, start de container opnieuw zonder hem te koppelen en kijk naar de logs met de laatste 10 regels:

docker container start <ID>

docker container logs -f --tail 10 <ID>

5) Verlaat de log met CTRL-C en stop de container met docker container kill:

docker container kill <ID>

Je merkt nu dat het geen 10 seconden duurt voordat de container is gestopt maar dat die meteen stopt. Bij docker container kill, killed hij de container meteen in plaats van eerst nog een SIGTERM te sturen.