web-dev-qa-db-fra.com

Comment arrêter et supprimer un conteneur Docker?

J'essaie de supprimer un docker/image/conteneur et tous les éléments liés au docker, mais avant tout, je dois les arrêter. Pendant que j'essaye d'exécuter cette commande:

docker stop $(docker ps -a -q)

Cela me donne une erreur:

[:/home/imran] 1 $ docker stop $(docker ps -a -q)

2015/01/16 00:37:38 Get http:///var/run/docker.sock/v1.14/containers/json?all=1: dial unix /var/run/docker.sock: permission denied

Usage: docker stop [OPTIONS] CONTAINER [CONTAINER...]  

Stop a running container by sending SIGTERM and then SIGKILL after a grace period

  -t, --time=10      Number of seconds to wait for the container to stop before killing it. Default is 10 seconds.

Comment puis-je désinstaller un conteneur Docker?

11
pushandpop

Je l'ai réparé! S'il vous plaît n'oubliez pas - toutes vos données dans les conteneurs seront supprimés!

Donc, tout d'abord, nous devons exécuter cette commande:

# adding new group
$ Sudo groupadd docker

# adding user to the 'docker' group
$ Sudo gpasswd -a ${your_username} docker

# restart the docker (documentation suggests to use 'docker.io' instead of 'docker',
# for me both variants work just fine!
$ Sudo service docker restart

Ensuite, nous devons nous déconnecter NE PAS utiliser GUI-variant car cela ne fonctionnait pas pour moi et j'ai été déçu à ce sujet.

À la place, utilisez cette commande:

Sudo pkill -u username

Ensuite, nous devons ...

1. Tuez tous les conteneurs en cours d'exécution

Sudo docker kill $(docker ps -q)

2. Supprimer tous les conteneurs arrêtés

Sudo docker rm $(docker ps -a -q)

3. Supprimer toutes les images non marquées/en suspens

Sudo docker rmi $(docker images -q -f dangling=true)

4. Supprimer toutes les images

Sudo docker rmi $(docker images -q)

Sources:
https://www.calazan.com/docker-cleanup-commands/
http://www.linuxquestions.org/questions/ubuntu-63/how-do-i-log-out-via-terminal-928183/

P.S. D'autres réponses sont peut-être également correctes, mais au moment où ces réponses ont été publiées, mon problème était déjà résolu et je ne peux pas vérifier si elles sont correctes ou non. Merci à @Andreas. Il a signalé une erreur selon laquelle les conteneurs avaient déjà été enlevés. Puisque je n'ai trouvé aucune solution correcte et "tout en un", je veux vous dire comment vous pouvez y remédier.

12
pushandpop

Vous devez exécuter ces commandes en tant que root, c'est-à-dire en utilisant Sudo:

Sudo docker stop $(Sudo docker ps -a -q)

Ou:

Sudo sh -c "docker stop $(docker ps -a -q)"
3
Andreas Veithen