Existe-t-il une commande qui peut combiner la commande docker stop
et docker rm
ensemble? Chaque fois que je veux supprimer un conteneur en cours d'exécution, j'ai besoin d'exécuter 2 commandes séquentiellement, je me demande s'il existe une commande combinée qui peut simplifier ce processus.
docker stop CONTAINER_ID
docker rm CONTATINER_ID
Réponses:
Vous pouvez utiliser :
Il supprimera le conteneur même s'il est toujours en cours d'exécution.
https://docs.docker.com/engine/reference/commandline/rm/
Vous pouvez également exécuter vos conteneurs avec l'
--rm
option, elle sera automatiquement supprimée à l'arrêt.https://docs.docker.com/engine/reference/run/#clean-up-rm
Edit: le
rm -f
peut être dangereux pour vos données et convient mieux aux conteneurs de test ou de développement. Le commentaire de @ Bernard à ce sujet vaut la peine d'être lu.la source
docker rm -f
envoie un signal SIGKILL au conteneur. Cela peut ne pas laisser le temps au conteneur d'enregistrer correctement son état. Pour les conteneurs non sans état, il faut vraiment utiliserdocker stop
suivi dedocker rm
. Cela envoie un signal SIGTERM qui par défaut donne aux conteneurs un maximum de 10 secondes pour effectuer leur arrêt avant que le démon docker envoie finalement un SIGKILL.la source
Vous pouvez arrêter et supprimer le conteneur avec une seule commande et
$_
vous donne le dernier échola source
Dans mon cas, pour supprimer tous les conteneurs en cours d'exécution, j'ai utilisé
la source
https://www.ctl.io/developers/blog/post/gracefully-stopping-docker-containers/
Vous pouvez utiliser kill, et aussi en utilisant rm et le drapeau force, il utilisera également kill.
la source
Retirez tous les conteneurs:
docker ps -aq | xargs docker rm -f
la source
sudo docker ps -aq | sudo xargs docker rm -f
Cela arrêtera et supprimera toutes les images, y compris les conteneurs en cours d'exécution, car nous utilisons -f
la source
Utilisez la commande docker ps avec l'indicateur -a pour localiser le nom ou l'ID des conteneurs que vous souhaitez supprimer
Pour supprimer: $ docker rm ID_or_Name ID_or_Name
Retirer un conteneur à la sortie:
Si vous savez lorsque vous créez un conteneur que vous ne voudrez pas le conserver une fois que vous avez terminé, vous pouvez exécuter docker run --rm pour le supprimer automatiquement à sa sortie.
Exécuter et supprimer:
docker run --rm image_name
Retirez tous les conteneurs sortis:
Vous pouvez localiser les conteneurs à l'aide de docker ps -a et les filtrer en fonction de leur état: créé, redémarré, en cours d'exécution, mis en pause ou quitté. Pour examiner la liste des conteneurs sortis, utilisez l'indicateur -f pour filtrer en fonction de l'état. Une fois que vous avez vérifié que vous souhaitez supprimer ces conteneurs, utilisez -q pour transmettre les ID à la commande docker rm.
Liste:
Supprimer les conteneurs en utilisant plus d'un filtre :
Les filtres Docker peuvent être combinés en répétant l'indicateur de filtre avec une valeur supplémentaire. Il en résulte une liste de conteneurs qui remplissent l'une ou l'autre des conditions. Par exemple, si vous souhaitez supprimer tous les conteneurs marqués comme Créé (un état qui peut résulter lorsque vous exécutez un conteneur avec une commande non valide) ou Quitté, vous pouvez utiliser deux filtres:
Arrêtez et retirez tous les conteneurs:
la source
Pour retirer un seul conteneur
Pour retirer tous les conteneurs
la source
Pour supprimer tous les conteneurs arrêtés
docker system prune
Pour arrêter le conteneur en direct,
docker stop CONTAINER_ID
attend 10 secondes et il appelledocker kill CONTAINER_ID
Ou avec
docker kill CONTAINER_ID
, vous pouvez immédiatement arrêter le conteneurla source