01/11/2022

0. Start & Stop

Lu 1783 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]864f22788f56   nginx:latest   "/docker-entrypoint.…"   17 seconds ago   Up 16 seconds   80/tcp    fervent_spence

Plusieurs informations sont affichées dont la commande du conteneur: /docker-entrypoint.sh 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 864f22788f56
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]73f16228a9bd   nginx    "/docker-entrypoint.…"   13 seconds 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.