Les conteneurs sont géniaux lorsqu'il s'agit de tester et de déployer un projet. Mais les conteneurs peuvent rapidement consommer de l'espace disque si vous créez plusieurs conteneurs.
Dans ce didacticiel Docker pour débutants, je vais vous montrer comment supprimer des conteneurs Docker.
Dans la forme la plus simple, vous pouvez supprimer un conteneur docker avec la commande docker rm :
docker rm container_id_or_name
Si vous souhaitez supprimer tous les conteneurs, arrêtez d'abord ceux en cours d'exécution, puis supprimez-les :
docker ps -q | xargs docker stop
docker ps -q | xargs docker rm
Mais vous n'aurez pas toujours une vie simple avec des conteneurs. Et c'est pourquoi je vais montrer différents scénarios dans lesquels vous pouvez supprimer des conteneurs Docker.
Exemples pratiques de suppression de conteneurs Docker
Comme vous pouvez le deviner, pour supprimer un conteneur, vous devez connaître son nom ou son ID. Vous pouvez vérifier tous les conteneurs docker de votre système (à l'arrêt et en cours d'exécution) avec la commande docker ps comme celle-ci :
[email protected]:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
07e97581c5d8 debian "bash" 9 minutes ago Up 9 minutes container2
6ef4545eef37 ubuntu "bash" 11 minutes ago Up 11 minutes container1
707e40ce3c5a ubuntu "/bin/bash" 15 minutes ago Exited (0) 15 minutes ago boring_payne
8047ab8e3673 ubuntu "/bin/bash" 34 minutes ago Exited (0) 15 minutes ago relaxed_wiles
ce84231ab213 debian "bash" 42 minutes ago Exited (0) 42 minutes ago bold_golick
12a18eaa291b hello-world "/hello" 2 days ago Exited (0) 2 days ago brave_mendeleev
La première colonne donne l'ID du conteneur et la dernière colonne donne le nom du conteneur. Vous pouvez également remarquer que les conteneurs Docker en cours d'exécution ont "Up" dans la colonne Status.
Maintenant que vous savez comment obtenir l'ID et le nom du conteneur, voyons comment le supprimer :
Supprimer le conteneur Docker
C'est le plus simple. Vous utilisez l'ID ou le nom du conteneur de cette manière :
docker rm container_id_or_name
Vous ne recevrez pas de message comme conteneur supprimé dans la sortie. Il affiche simplement l'identifiant ou le nom du conteneur que vous avez fourni.
[email protected]:~$ docker rm 12a18eaa291b
12a18eaa291b
Supprimer un conteneur en cours d'exécution
Si un conteneur est en cours d'exécution et que vous essayez de le supprimer, vous verrez une erreur comme celle-ci :
[email protected]:~$ docker rm container1
Error response from daemon: You cannot remove a running container 6ef4545eef378788e5e9d7ac1cf2e0a717480608adb432be99fd9b3d3a604c12. Stop the container before attempting removal or force remove
De toute évidence, vous devez d'abord arrêter le conteneur Docker, puis le supprimer :
docker stop container_id_or_name
docker rm container_id_or_name
Forcer la suppression d'un conteneur Docker en cours d'exécution (non recommandé)
Docker vous donne l'option -f pour forcer la suppression d'un conteneur. Avec cela, vous pouvez supprimer un conteneur en cours d'exécution :
docker rm -f container_id_or_name
Ceci n'est pas recommandé car il envoie la commande kill et votre conteneur peut ne pas enregistrer son état.
Supprimer plusieurs conteneurs Docker
Vous pouvez spécifier plusieurs conteneurs Docker lors de la suppression :
docker rm container1 container2 container3
Supprimer plusieurs conteneurs Docker associés à une image Docker particulière
Dans l'exemple, supposons que vous souhaitiez supprimer tous les conteneurs associés à l'image docker ubuntu.
Je vous conseille d'abord d'arrêter les conteneurs :
docker ps -a -q --filter ancestor=ubuntu | xargs docker stop
Puis supprimez ces conteneurs :
docker ps -a -q --filter ancestor=ubuntu | xargs docker rm
Pour expliquer la commande ci-dessus, le docker ps
la sortie de la commande a été filtrée avec des conteneurs associés à l'image ubuntu, puis le -q
l'option ne donne que l'ID des conteneurs. Combinez-le avec la commande xargs pour fournir les ID de conteneur (associés à Ubuntu) à la commande docker rm.
Supprimer tous les conteneurs arrêtés
Si vous souhaitez supprimer tous les conteneurs arrêtés, vous pouvez les filtrer en fonction de leur statut, puis les arrêter de cette manière :
docker ps -a -q -f status=exited | xargs docker rm
Supprimer tous les conteneurs Docker
Si vous souhaitez supprimer tous les conteneurs de votre système, vous devez d'abord vous assurer d'arrêter tous les conteneurs, puis de les supprimer :
docker ps -q | xargs docker stop
docker ps -q | xargs docker rm
J'espère que vous avez aimé ce tutoriel Docker. Restez à l'écoute pour en savoir plus.