Récemment, j'ai étudié diverses choses en mettant Docker sur EC2 (Amazon Linux2) d'AWS ~~ jouant ~~.
Créer un conteneur centos → Continuer → Terminer, créer un conteneur mysql → Continuer → Terminer, etc., et vérifier occasionnellement l'état de fonctionnement du conteneur avec la commande docker ps
, mais à un moment donné docker Quand j'ai couru ps -a
** Que diable! !! **est devenu.
Ensuite, "Ne détestez pas Docker même si le conteneur Docker est terminé!"
◯ Je ne sais pas si M. Atsuko Ta a dit, mais au moins j'ai appris que ** le conteneur Docker est terminé mais le conteneur Docker reste **.
L'introduction inutile est devenue longue, mais pour supprimer le conteneur Garbage Docker accumulé dans ce pool Un mémorandum de commande.
État avant suppression
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9ec50bb2ac79 mysql "docker-entrypoint.s…" 4 days ago Up 2 days 3306/tcp, 33060/tcp MYSQL
20cabc9db638 centos "/bin/bash" 4 days ago Up 2 days 0.0.0.0:9989->8080/tcp centos_container
149e47fc7182 mysql "docker-entrypoint.s…" 4 days ago Exited (0) 4 days ago silly_haibt
6d0b42666db1 mysql "docker-entrypoint.s…" 4 days ago Exited (0) 4 days ago stoic_panini
cc75432e283b mysql "docker-entrypoint.s…" 4 days ago Exited (127) 4 days ago serene_merkle
e75ea014088a mysql "docker-entrypoint.s…" 4 days ago Exited (0) 4 days ago laughing_allen
7f6d0144717d centos "/bin/bash" 4 days ago Exited (0) 4 days ago zealous_haibt
b78d2f0c9b93 centos "/bin/bash" 4 days ago Exited (0) 4 days ago centos_1
a1adb31a4719 mysql "docker-entrypoint.s…" 4 days ago Exited (0) 4 days ago mysql_container
b977c75c9dd7 mysql "docker-entrypoint.s…" 4 days ago Exited (1) 4 days ago bold_nobel
6c590752cab8 mysql "docker-entrypoint.s…" 4 days ago Exited (1) 4 days ago gifted_nightingale
Parmi les éléments ci-dessus, supprimez tous sauf les deux premiers en fonctionnement.
docker ps -f status = <status>
docker ps -f status=exited | awk '{print $1}' | xargs docker rm
Résultat d'exécution
149e47fc7182
6d0b42666db1
cc75432e283b
e75ea014088a
7f6d0144717d
b78d2f0c9b93
a1adb31a4719
b977c75c9dd7
6c590752cab8
Error: No such container: CONTAINER
[ ~]$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9ec50bb2ac79 mysql "docker-entrypoint.s…" 4 days ago Up 2 days 3306/tcp, 33060/tcp MYSQL
20cabc9db638 centos "/bin/bash" 4 days ago Up 2 days 0.0.0.0:9989->8080/tcp centos_container
Le conteneur inutile a disparu, mais j'ai eu une erreur lorsque j'ai essayé de faire docker rm
avec" CONTAINER "dans la ligne d'en-tête. .. (Eh bien, Ikka)
Après avoir créé la commande ci-dessus, le Manuel officiel de Docker montre comment supprimer un conteneur qui n'est pas en cours d'exécution. .. On vous demandera peut-être de le mettre avant la méthode awk qui n'a pas ce qui précède ...
État de pré-exécution (j'ai à nouveau augmenté la production de conteneurs inutiles)
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
109839ada027 centos "/bin/bash" 35 seconds ago Exited (0) 34 seconds ago vibrant_bohr
cf2e8c41b2ee centos "/bin/bash" 36 seconds ago Exited (0) 36 seconds ago brave_mestorf
fcfdaf35235d centos "/bin/bash" 37 seconds ago Exited (0) 37 seconds ago gallant_faraday
bf7b9fa96291 centos "/bin/bash" 38 seconds ago Exited (0) 38 seconds ago zealous_morse
9ec50bb2ac79 mysql "docker-entrypoint.s…" 4 days ago Up 2 days 3306/tcp, 33060/tcp MYSQL
20cabc9db638 centos "/bin/bash" 4 days ago Up 2 days 0.0.0.0:9989->8080/tcp centos_container
Supprimer la commande
Explication de la commande (du manuel officiel)
Cette commande supprime tous les conteneurs arrêtés. La commande docker ps -a -q transmet tous les ID de conteneur terminés à la commande rm et les supprime tous. Le conteneur en cours d'exécution n'est pas supprimé.
docker rm $(docker ps -a -q)
Résultat d'exécution
109839ada027
cf2e8c41b2ee
fcfdaf35235d
bf7b9fa96291
Error response from daemon: You cannot remove a running container 9ec50bb2ac797f3cfdbe827aa2793ba135f6f29e9fd2c1b179afa09d6be4b5ba. Stop the container before attempting removal or force remove
Error response from daemon: You cannot remove a running container 20cabc9db6380304c3c0c3b8a14f04e0bd60fd58c810ee4c02d6539fd5b4f3f3. Stop the container before attempting removal or force remove
Une erreur se produit lors de la tentative de suppression d'un conteneur en cours d'exécution.
Je ne l'ai pas essayé, mais si vous faites docker rm -f $ (docker ps -a -q)
, vous serez condamné à tuer tous les conteneurs!
Cela devrait l'être, et comme la plupart d'entre vous qui avez lu jusqu'à présent l'ont remarqué, cela a été réalisé par la méthode awk ci-dessus.
Le contenu peut également être réalisé avec la commande suivante ...
docker rm $(docker ps -f status=exited -q)
Eh bien, il semble que vous allez bien. .. .. Dix