GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment arrêter les conteneurs Docker

Ce didacticiel Docker traite des méthodes permettant d'arrêter un seul conteneur Docker, plusieurs conteneurs Docker ou tous les conteneurs Docker en cours d'exécution en même temps. 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 à savoir sur l'arrêt d'un conteneur Docker, surtout si vous êtes un débutant Docker.

Exemples pratiques pour arrêter le conteneur docker

J'aborderai divers aspects de l'arrêt d'un conteneur Docker dans ce didacticiel :

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

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

Vous pouvez lister tous les conteneurs docker en cours d'exécution avec le docker ps commande. Sans aucune option, la commande docker ps affiche uniquement les conteneurs en cours d'exécution.

[email protected]:~$ 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.

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 :

[email protected]:~$ docker stop 1bcf775d8cc7
1bcf775d8cc7

Vous pouvez utiliser la commande docker stop sur un conteneur déjà arrêté. Il ne générera 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.

[email protected]:~$ 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êter plusieurs conteneurs Docker

Vous pouvez également arrêter plusieurs conteneurs Docker à la fois. Il vous suffit de fournir les noms et 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 :

[email protected]:~$ docker stop container-1 container-2 container-3
container-1
container-2
container-3

3. Arrêter 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.

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 élégance

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

Cela ne signifie pas 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.

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

Qu'est-ce que SIGTERM ? Quelle est la différence entre SIGKILL et SIGTERM ? SIGTERM et SIGKILL sont utilisés pour tuer un processus sous Linux. Mais vous devriez préférer utiliser SIGTERM. Voici pourquoi! Manuel LinuxAbhishek Prakash

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

En fin de compte…

Je pense que toutes ces informations couvrent très bien le sujet. Vous savez beaucoup de choses sur l'arrêt d'un conteneur docker.

Restez à l'écoute pour plus de conseils et de tutoriels sur Docker. Si vous avez des questions ou des suggestions, n'hésitez pas à me le faire savoir dans la section des commentaires.


Docker
  1. Comment mettre à jour automatiquement les conteneurs Docker en cours d'exécution

  2. Comment utiliser Docker Compose

  3. Comment connecter des conteneurs Docker

  4. Comment transmettre des variables d'environnement aux conteneurs Docker

  5. Comment répertorier les conteneurs Docker

Comment exécuter des conteneurs Docker

Comment supprimer les conteneurs Docker

Comment nommer ou renommer les conteneurs Docker

Comment gérer les conteneurs Docker

Comment répertorier/démarrer/arrêter/supprimer les conteneurs docker

Comment configurer les espaces de noms réseau dans les conteneurs Docker