20/04/2021

0. Start & Stop

Lu 128 fois Licence Creative Commons

Démarrer un conteneur

Pour démarrer spontanément un conteneur, utiliser la commande run suivie du nom de l'image:

docker run nginx:latest

L'image étant inconnue sur la machine, elle est d'abord téléchargée.

Le conteneur est exécute en foreground (en premier plan), ce qui empêche d'exécuter d'autre commandes dans le terminal.
Stopper le conteneur avec Ctrl+C, puis relancer un conteneur NGINX en background (en arrière plan) avec l'option -d (pour "detached"):

docker run -d nginx:latest

L'ID du conteneur est affiché. Cette fois-ci, le terminal est accessible pour exécuter d'autres commandes.

« Mais comment savoir si le conteneur est bien lancé ? »


Conteneurs actifs et commandes

Pour lister les conteneurs actifs, utiliser la commande ps:

docker ps
[output]CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
[output]6d1491dc58c9        nginx:latest        "nginx -g 'daemon of…"   9 seconds ago       Up 7 seconds        80/tcp              focused_blackwell

Plusieurs informations sont affichées dont la commande du conteneur: nginx -g 'daemon off;'.
Un conteneur possède un point d'entrée (entrypoint): une commande qu'il doit exécuter au démarrage qui est le processus principal du conteneur. Tant que cette commande s'exécute, le conteneur est actif.
Si pour une certaine raison la commande est stoppée, le conteneur l'est également.

Arrêter un conteneur

Pour stopper le conteneur NGINX démarré précédemment, utiliser la commande stop suivi de l'identifiant du conteneur puis vérifier qu'il n'apparaîsse plus dans la liste des conteneurs actifs:

docker stop 6d1491dc58c9
docker ps

La commande stop effectue un arrêt normal (signal SIGTERM puis SIGKILL). Un arrêt plus "radical" peut être effectué avec la commande kill (SIGKILL uniquement).

Nommer un conteneur

Utiliser les identifiants des conteneurs n'est pas ce qu'il y a de plus simple à retenir. On peut nommer les conteneurs pour faciliter leur manipulation avec l'option --name:

docker run -d --name web_server nginx

En listant les conteneurs actifs, on observe que la colonne NAMES affiche web_server. Ce nom est utilisable pour de multiples commandes à la place de l'identifiant:

docker stop web_server

Redémarrer & supprimer un conteneur

Lorsqu'un conteneur est arrêté, il n'est pas supprimé de la machine. On peut lister tous les conteneurs avec l'option -a (ou --all):

docker ps -a
[output]CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                         PORTS               NAMES
[output]7ada87c47668        nginx               "nginx -g 'daemon of…"   14 minutes ago      Exited (0) 5 seconds ago                           web_server

Noter la colonne STATUS pour différencier les conteneurs actifs des inactifs.


Pour redémarrer le conteneur NGINX, utiliser la commande start:

docker start web_server

Le conteneur est de nouveau actif.


Pour le supprimer, utiliser la commande rm:

docker rm web_server

Note: Arrêter le conteneur au préalable. L'utilisation de l'option -f (ou --force) équivaut à un appel à docker kill avant la suppression.


Astuce:

Si l'on souhaite qu'un conteneur soit supprimé dès son arrêt, on peut utiliser l'option --rm:

docker run -d --rm --name web_server nginx

Arrêter le conteneur et vérifier l'affichage de docker ps -a.