Menu Fermer

Comment lister, arrêter, démarrer un conteneur Docker

Un conteneur Docker utilise une image d’un système d’exploitation préconfiguré et optimisé pour une tâche spécifique. Lorsqu’une image Docker est lancée, elle existe dans un conteneur. Par exemple, plusieurs conteneurs peuvent exécuter la même image en même temps sur un seul système d’exploitation hôte.

Dans ce tutoriel, je vous donne toutes les commandes pour lister, arrêter, démarrer un conteneur Docker avec des exemples.

Comment lister, arrêter, démarrer un conteneur Docker

Comment démarrer un conteneur Docker avec docker run

Pour l’installation de Docker, suivez ce tutoriel :

Pour pouvoir démarrer un conteneur, vous devez au préalable avec créer une image à l’aide de la commande docker pull :

docker pull <nom de l'image>

Par exemple :

sudo docker pull nginx

La commande principale pour lancer ou démarrer un ou plusieurs conteneurs Docker arrêtés est docker start :

docker start [options] id_containeur

Vous pouvez aussi spécifier container.
Par exemple :

sudo docker container start 1f8594be150e

Vous pouvez spécifier le conteneur en utilisant son nom ou son ID (long ou court).

Pour créer un nouveau conteneur à partir d’une image et le démarrer, utilisez docker run :

docker run [options] image [command] [argument]

La commande mentionnée ci-dessus va créer le conteneur nginx-con basé sur l’image nginx et le démarrer.

docker run –name nginx-con nginx
Comment démarrer un conteneur Docker avec docker run

Un conteneur peut être en cours d’exécution, mais vous pouvez ne pas être en mesure d’interagir avec lui. Pour démarrer le conteneur en mode interactif, utilisez les options -i et -t :

docker run -it --name=Test_ubuntu ubuntu
Comment démarrer un conteneur Docker avec docker run

Comment lister un conteneur Docker

Pour répertorier tous les conteneurs Docker en cours d’exécution, saisissez la commande suivante dans une fenêtre de terminal :

docker ps

Notez qu’en plus long, vous pouvez utiliser :

docker container ls
Comment lister un conteneur Docker

Pour lister tous les conteneurs, qu’ils soient en cours d’exécution ou arrêtés, ajoutez -a :

docker ps –a
Comment lister un conteneur Docker

Pour lister les conteneurs par leur ID, utilisez -aq (quiet) :

docker ps –aq

Pour lister la taille totale des fichiers de chaque conteneur, utilisez -s (size/taille) :

docker ps –s

Pour lister les derniers conteneurs créés, utilisez -l (latest) :

docker ps –l

La commande ps fournit plusieurs colonnes d’informations :

  • ID du conteneur – un numéro alphanumérique unique pour chaque conteneur
  • Image – L’image du système d’exploitation de base sur laquelle le conteneur est basé
  • Command – La commande qui a lancé le conteneur
  • Created – Depuis combien de temps le conteneur a-t-il été créé ?
  • Statut – Temps de fonctionnement ou temps d’arrêt
  • Ports – Spécifie tous les ports transférés au conteneur pour la mise en réseau
  • Name – Un nom mémorable attribué par le logiciel Docker

Comment arrêter un conteneur Docker

Utilisez la commande docker stop pour arrêter un conteneur :

docker stop [option] <id_containeur>

Par exemple :

sudo docker stop 5f40ab11a9b1
Comment arrêter un conteneur Docker

Par défaut, vous disposez d’un délai de grâce de 10 secondes. La commande stop indique au conteneur d’arrêter les services après cette période. Utilisez l’option –time pour définir un délai de grâce différent, exprimé en secondes :

docker stop --time=20 <id_containeur>

Pour tuer immédiatement un conteneur docker sans attendre la fin de la période de grâce, utilisez l’option kill.

docker kill [option] <id_containeur>

Pour arrêter tous les conteneurs en cours d’exécution, entrez ce qui suit :

docker stop $(docker ps –a –q)

La même commande peut être utilisée avec kill. Cela arrêtera tous les conteneurs sans leur donner une chance de sortir.

docker: Error response from daemon: Conflict.

Si vous rencontrez un message d’erreur du type :

docker: Error response from daemon: Conflict. The container name "/nginx-con" is already in use by container "5f40ab11a9b19efc9768ecaccdfc10b22b96079191987b738d909557133a833a". You have to remove (or rename) that container to be able to reuse that name.

C’est que votre image docker est utilisé dans plusieurs conteneurs.
Pour supprimer l’image, tout d’abord, vous devez trouver tous les conteneurs associés à un nom d’image (et non à un ID).

docker ps -a -q --filter name=<nom image docker>
  • L’option -a affiche tous les conteneurs en cours d’exécution et arrêtés
  • L’option -q affiche uniquement l’ID du conteneur

Vous devez alors tous les arrêter. Vous pouvez utiliser les ID des conteneurs un par un, mais cela prendrait trop de temps. Vous pouvez utiliser la magie de pipe et de xargs pour arrêter tous les conteneurs associés à une image :

sudo docker ps -a -q --filter name=nginx-con | xargs sudo docker stop

Ensuite, vous pouvez soit supprimer les conteneurs arrêtés, soit forcer la suppression de l’image (comme vous l’avez vu dans la section précédente).

Si vous voulez supprimer tous les conteneurs associés à une image, il suffit d’exécuter cette commande :

sudo docker ps -a -q --filter name=nginx-con | xargs sudo docker rm

Et maintenant, vous pouvez supprimer l’image docker en utilisant la commande présentée plus tôt dans ce tutoriel.

Comment arrêter un conteneur Docker

Comment supprimer un conteneur Docker

Pour supprimer un conteneur, utilisez la commande rm -f :

docker rm -f <id conteneur>

Pour supprimer tous les conteneurs :

docker rm -f $(docker ps -aq)

Pour supprimer tous les conteneurs arrêtés :

docker rm -v`docker ps -aqf status=exited`

Enfin pour supprimer les anciens conteneurs :

docker ps -a | grep 'weeks ago' | awk '{print $1}' | xargs docker rm