Comment arrêter les conteneurs Docker

Ce didacticiel Docker décrit les méthodes pour arrêter un seul conteneur Docker, plusieurs conteneurs Docker ou tous les conteneurs Docker en cours d’exécution à la fois. Vous apprendrez également à arrêter gracieusement un conteneur Docker.

Pour arrêter un conteneur Docker, il vous suffit d’utiliser l’ID ou le nom du conteneur de la manière suivante :

docker stop container_ID_or_name

Vous pouvez également utiliser la commande docker container stop container_id_or_name mais c’est un mot supplémentaire dans la commande et cela n’offre aucun avantage supplémentaire, alors restez avec docker stop.

Mais il y a plus à arrêter un conteneur Docker que vous devez savoir, surtout si vous êtes un débutant Docker.

Exemples pratiques pour arrêter le conteneur docker

Je vais discuter de divers aspects autour de l’arrêt d’un conteneur docker dans ce tutoriel :

  • Arrêter un conteneur docker
  • Arrêtez plusieurs conteneurs Docker à la fois
  • Arrêtez tous les conteneurs Docker avec une certaine image
  • Arrêtez tous les conteneurs Docker en cours d’exécution à la fois
  • Arrêt gracieux d’un conteneur docker

Avant de voir cela, vous devez savoir comment obtenir le nom ou l’ID du conteneur.

Vous pouvez répertorier tous les conteneurs docker en cours d’exécution avec la commande docker ps . Sans aucune option, la commande docker ps affiche uniquement les conteneurs en cours d’exécution.

abhishek@linuxhandbook:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
1bcf775d8cc7        ubuntu              "bash"              8 minutes ago       Up About a minute                       container-2
94f92052f55f        debian              "bash"              10 minutes ago      Up 10 minutes                           container-1

La sortie vous donne également le nom et l’ID du conteneur. Vous pouvez utiliser l’un ou l’autre de ces deux éléments pour arrêter un conteneur.

READ  Comment vérifier si un fichier ou un répertoire existe dans Bash Shell

Passons maintenant à l’arrêt des conteneurs.

1. Arrêter un conteneur docker

Pour arrêter un conteneur spécifique, utilisez son ID ou son nom avec la commande docker stop :

docker stop container_name_or_ID

Le résultat aurait dû être plus descriptif, mais il affiche simplement le nom ou l’ID du conteneur, selon ce que vous avez fourni :

abhishek@itsfoss:~$ docker stop 1bcf775d8cc7
1bcf775d8cc7

Vous pouvez utiliser la commande docker stop sur un conteneur déjà arrêté. Il ne lancera aucune erreur ou une sortie différente.

Vous pouvez vérifier si le conteneur a été arrêté à l’aide de la commande docker ps -a. L’option -a affiche tous les conteneurs, qu’ils soient en cours d’exécution ou arrêtés.

abhishek@itsfoss:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
1bcf775d8cc7        ubuntu              "bash"              19 minutes ago      Exited (0) About a minute ago                       container-2
94f92052f55f        debian              "bash"              29 minutes ago      Up 29 minutes                                   container-1

Si le statut est Exited, cela signifie que le conteneur ne fonctionne plus.

2. Arrêtez plusieurs conteneurs Docker

Vous pouvez également arrêter plusieurs conteneurs Docker à la fois. Il vous suffit de fournir les noms et les ID des conteneurs.

docker stop container_id_or_name_1 container_id_or_name_2 container_id_or_name_3

Comme précédemment, la sortie affichera simplement le nom ou l’ID des conteneurs :

abhishek@itsfoss:~$ docker stop container-1 container-2 container-3
container-1
container-2
container-3

3. Arrêtez tous les conteneurs associés à une image

Jusqu’à présent, ce que vous avez vu arrêter les conteneurs en mentionnant explicitement leur nom ou leur identifiant.

Que faire si vous souhaitez arrêter tous les conteneurs en cours d’exécution d’une certaine image Docker ? Imaginez un scénario dans lequel vous souhaitez supprimer une image Docker, mais vous devrez arrêter tous les conteneurs en cours d’exécution associés.

READ  11 raisons pour lesquelles Linux est meilleur que Windows

Vous pouvez fournir les noms ou les identifiants des conteneurs un par un, mais cela prend du temps. Ce que vous pouvez faire, c’est filtrer tous les conteneurs en cours d’exécution en fonction de leur image de base.

Remplacez simplement IMAGE_NAME par le nom de votre image Docker et vous devriez pouvoir arrêter tous les conteneurs en cours d’exécution associés à cette image.

docker ps -q --filter ancestor=IMAGE_NAME | xargs docker stop

L’option -q affiche uniquement l’ID du conteneur. Grâce à la merveilleuse commande xargs , ces ID de conteneur sont redirigés vers l’arrêt docker en tant qu’argument.

4. Arrêtez tous les conteneurs Docker en cours d’exécution

Vous pouvez être confronté à une situation où vous devez arrêter tous les conteneurs en cours d’exécution. Par exemple, si vous souhaitez supprimer tous les conteneurs dans Docker , vous devez les arrêter au préalable.

Pour ce faire, vous pouvez utiliser quelque chose de similaire à ce que vous avez vu dans la section précédente. Supprimez simplement la partie image.

docker ps -q | xargs docker stop

5. Arrêtez un conteneur avec grâce

Pour être honnête, docker arrête un conteneur gracieusement par défaut. Lorsque vous utilisez la commande docker stop, cela donne 10 secondes au conteneur avant de le tuer de force.

Cela ne veut pas dire qu’il faut toujours 10 secondes pour arrêter un conteneur. C’est juste que si le conteneur exécute certains processus, il dispose de 10 secondes pour arrêter le processus et quitter.

La commande Docker stop envoie d’abord la commande SIGTERM. Si le conteneur est arrêté pendant cette période, il envoie la commande SIGKILL. Un processus peut ignorer le SIGTERM mais SIGKILL tuera le processus immédiatement.

READ  UNIX c'est quoi ? - Définition et Explications

J’espère que vous connaissez la différence entre SIGTERM et SIGKILL .

Vous pouvez modifier cette période de grâce de 10 secondes avec l’option -t. Supposons que vous souhaitiez attendre 30 secondes avant d’arrêter le conteneur :

docker stop -t 30 container_name_or_id
5/5 - (1 vote)
SAKHRI Mohamed
SAKHRI Mohamed

Le blog d'un passionné d'informatique qui partage des actualités, des tutoriels, des astuces, des outils en ligne et des logiciels pour Windows, macOS, Linux, Web designer et jeux vidéo.

Publications: 3732

Laisser un commentaire

Your email address will not be published.