Comment utiliser la commande docker container kill pour gérer les conteneurs

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce lab, vous apprendrez à gérer des conteneurs Docker en utilisant la commande docker container kill. Nous commencerons par créer et exécuter un simple conteneur. Ensuite, vous explorerez comment arrêter un conteneur en cours d'exécution en utilisant le signal par défaut. Enfin, vous apprendrez à terminer un conteneur en utilisant des signaux personnalisés, à la fois par nom et par numéro, vous fournissant ainsi les compétences essentielles pour contrôler le cycle de vie de vos conteneurs Docker.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/stop("Stop Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") subgraph Lab Skills docker/run -.-> lab-555111{{"Comment utiliser la commande docker container kill pour gérer les conteneurs"}} docker/ps -.-> lab-555111{{"Comment utiliser la commande docker container kill pour gérer les conteneurs"}} docker/stop -.-> lab-555111{{"Comment utiliser la commande docker container kill pour gérer les conteneurs"}} docker/create -.-> lab-555111{{"Comment utiliser la commande docker container kill pour gérer les conteneurs"}} docker/pull -.-> lab-555111{{"Comment utiliser la commande docker container kill pour gérer les conteneurs"}} end

Créer et exécuter un conteneur simple

Dans cette étape, nous allons apprendre à créer et exécuter un conteneur Docker simple. Un conteneur est une unité logicielle standard qui empaquette du code et toutes ses dépendances afin que l'application s'exécute rapidement et de manière fiable d'un environnement informatique à un autre.

Tout d'abord, nous devons récupérer l'image Docker que nous allons utiliser. Nous utiliserons l'image ubuntu, qui est un système d'exploitation Ubuntu minimal.

docker pull ubuntu

Cette commande télécharge l'image ubuntu depuis Docker Hub vers votre machine locale. Vous devriez voir une sortie indiquant la progression du téléchargement.

Maintenant que nous avons l'image, nous pouvons exécuter un conteneur basé sur celle-ci. Nous allons exécuter une commande simple à l'intérieur du conteneur.

docker run ubuntu echo "Hello from Docker!"

Décomposons cette commande :

  • docker run : C'est la commande pour exécuter un nouveau conteneur.
  • ubuntu : C'est le nom de l'image que nous voulons utiliser.
  • echo "Hello from Docker!" : C'est la commande qui sera exécutée à l'intérieur du conteneur.

Lorsque vous exécutez cette commande, Docker crée un nouveau conteneur à partir de l'image ubuntu, exécute la commande echo à l'intérieur, puis le conteneur s'arrête. Vous devriez voir la sortie Hello from Docker! dans votre terminal.

Pour voir les conteneurs qui ont été exécutés, y compris ceux qui se sont arrêtés, vous pouvez utiliser la commande docker ps -a.

docker ps -a

Cette commande liste tous les conteneurs, qu'ils soient en cours d'exécution ou arrêtés. Vous devriez voir une entrée pour le conteneur que vous venez d'exécuter, avec un statut "Exited".

Arrêter un conteneur en cours d'exécution avec le signal par défaut

Dans l'étape précédente, nous avons exécuté un conteneur qui a terminé son action puis s'est arrêté. Dans cette étape, nous allons lancer un conteneur qui reste actif et apprendre à l'arrêter en utilisant le signal par défaut.

Commençons par exécuter un conteneur qui restera actif. Nous utiliserons à nouveau l'image ubuntu, mais cette fois avec une commande qui maintient le conteneur en fonctionnement indéfiniment.

docker run -d ubuntu sleep infinity

Examinons cette commande :

  • docker run : Commande pour lancer un nouveau conteneur
  • -d : Ce paramètre exécute le conteneur en mode détaché (en arrière-plan)
  • ubuntu : L'image à utiliser
  • sleep infinity : Commande exécutée dans le conteneur, le maintenant actif indéfiniment

Après exécution, Docker affiche l'ID du conteneur. Celui-ci tourne maintenant en arrière-plan.

Pour visualiser les conteneurs actifs, utilisez :

docker ps

Vous devriez voir votre conteneur avec le statut "Up" suivi de sa durée d'exécution. Notez son CONTAINER ID ou NAMES, nécessaire pour l'arrêter.

Arrêtons maintenant le conteneur avec docker kill. Par défaut, cette commande envoie le signal SIGKILL au processus principal. Ce signal termine immédiatement le processus et ne peut être intercepté.

Remplacez <container_id_or_name> par l'ID ou nom de votre conteneur :

docker kill <container_id_or_name>

Le conteneur devrait maintenant être arrêté. Vérifiez avec docker ps. Pour voir les conteneurs arrêtés :

docker ps -a

Le statut sera alors "Exited".

Créer et exécuter un autre conteneur

Dans l'étape précédente, nous avons arrêté un conteneur en cours d'exécution en utilisant le signal par défaut. Dans cette étape, nous allons créer et exécuter un autre conteneur que nous utiliserons dans les étapes suivantes pour démontrer l'arrêt d'un conteneur avec des signaux personnalisés.

Nous allons exécuter un nouveau conteneur en mode détaché en utilisant l'image ubuntu et la commande sleep infinity, comme précédemment.

docker run -d ubuntu sleep infinity

Cette commande démarrera un nouveau conteneur en arrière-plan qui s'exécutera indéfiniment. Docker affichera l'ID du nouveau conteneur.

Pour confirmer que le conteneur est en cours d'exécution, utilisez la commande :

docker ps

Vous devriez voir le nouveau conteneur listé avec un statut "Up". Notez le CONTAINER ID ou NAMES de ce conteneur. Nous utiliserons cet ID ou nom dans les prochaines étapes pour arrêter le conteneur en utilisant différents signaux.

Ce conteneur est maintenant prêt pour nous permettre de pratiquer l'envoi de différents signaux.

Arrêter un conteneur avec un signal personnalisé par nom

Dans l'étape précédente, nous avons démarré un conteneur actuellement en cours d'exécution. Dans cette étape, nous allons apprendre comment arrêter ce conteneur en utilisant un signal spécifique désigné par son nom.

La commande docker kill permet d'envoyer un signal spécifique au processus principal d'un conteneur. Par défaut, elle envoie SIGKILL, mais vous pouvez spécifier d'autres signaux. Un signal couramment utilisé pour arrêter proprement des applications est SIGTERM. Contrairement à SIGKILL, les processus peuvent intercepter SIGTERM et effectuer des opérations de nettoyage avant de s'arrêter.

Commencez par identifier l'ID ou le nom du conteneur en cours d'exécution à l'aide de :

docker ps

Utilisez ensuite la commande docker kill avec l'option -s pour spécifier le nom du signal. Nous utiliserons SIGTERM. Remplacez <container_id_or_name> par l'ID ou le nom réel de votre conteneur.

docker kill -s SIGTERM <container_id_or_name>

Cette commande envoie le signal SIGTERM au processus principal du conteneur spécifié. Si l'application dans le conteneur est conçue pour gérer SIGTERM, elle tentera de s'arrêter proprement. Sinon, Docker finira par envoyer un SIGKILL pour forcer l'arrêt.

Pour vérifier que le conteneur s'est arrêté, exécutez à nouveau :

docker ps

Le conteneur ne devrait plus apparaître dans la liste. Vous pouvez aussi utiliser :

docker ps -a

Son statut devrait alors être "Exited".

Arrêter un conteneur avec un signal personnalisé par numéro

Dans l'étape précédente, nous avons arrêté un conteneur en utilisant un nom de signal (SIGTERM). Dans cette étape, nous allons apprendre comment arrêter un conteneur en utilisant un signal spécifié par son numéro.

Chaque signal possède un numéro correspondant. Par exemple, SIGKILL est le signal 9, et SIGTERM est le signal 15. Vous pouvez trouver la liste des signaux et leurs numéros sur un système Linux en utilisant la commande :

kill -l

Cette commande affichera la liste des noms de signaux et leurs numéros correspondants.

Maintenant, lançons un autre conteneur qui restera actif, comme dans les étapes précédentes.

docker run -d ubuntu sleep infinity

Obtenez l'ID ou le nom de ce nouveau conteneur en cours d'exécution avec :

docker ps

Nous allons maintenant utiliser la commande docker kill avec l'option -s, mais cette fois en spécifiant le numéro du signal plutôt que son nom. Utilisons le signal numéro 9, qui correspond à SIGKILL. Remplacez <container_id_or_name> par l'ID ou le nom réel de votre conteneur.

docker kill -s 9 <container_id_or_name>

Cette commande envoie le signal SIGKILL (numéro 9) au processus principal du conteneur spécifié. Comme mentionné précédemment, SIGKILL termine immédiatement le processus.

Pour vérifier que le conteneur s'est arrêté, exécutez à nouveau :

docker ps

Le conteneur ne devrait plus apparaître dans la liste. Vous pouvez aussi utiliser :

docker ps -a

Son statut devrait alors être "Exited".

L'utilisation des numéros de signaux peut être utile dans les scripts ou lorsque vous avez besoin d'être précis sur le signal envoyé.

Résumé

Dans ce labo, nous avons appris les étapes fondamentales de gestion des conteneurs Docker à l'aide de la commande docker container kill. Nous avons commencé par créer et exécuter un conteneur simple basé sur l'image ubuntu, en lançant une commande basique et en observant son état terminé via docker ps -a.

Par la suite, nous avons exploré comment arrêter un conteneur en cours d'exécution. Nous avons d'abord démontré l'arrêt d'un conteneur en utilisant le signal par défaut, puis approfondi la flexibilité de la commande docker container kill en terminant des conteneurs à l'aide de noms de signaux personnalisés et de leurs valeurs numériques correspondantes. Cette expérience pratique a fourni des connaissances concrètes sur le contrôle du cycle de vie des conteneurs Docker.