Comment arrêter et supprimer un conteneur Docker?

11

J'essaie de supprimer un docker / image / conteneur et tout ce qui est en quelque sorte lié à docker, mais tout d'abord, je dois l'arrêter. Pendant que j'essaie 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?

pushandpop
la source

Réponses:

12

Je l'ai réparé! N'oubliez pas - toutes vos données dans les conteneurs seront supprimées!

Donc, tout d'abord, nous devons exécuter ces commandes:

# 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, N'UTILISEZ PAS la variante GUI car cela n'a pas fonctionné pour moi et j'ai été déçu à ce sujet.

Utilisez plutôt 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. Supprimez toutes les images «non marquées / pendantes»

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/

PS Peut-être que d'autres réponses sont é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é retirés. Comme je n'ai trouvé aucune solution correcte et "tout en un", je veux vous dire comment vous pouvez la corriger.

pushandpop
la source
Comment supprimer le routage IP restant d'ifconfig? dockerapparaît toujours comme un périphérique réseau
6ft Dan
3

Vous devez exécuter ces commandes en rootutilisant par exemple sudo:

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

Ou:

sudo sh -c "docker stop $(docker ps -a -q)"
Andreas Veithen
la source
Est-ce une sortie normale: pastebin.com/FXhc5TF7 . J'ai également remarqué que mon "cmd-label" a changé. De 'user @ rootf8fds7 $:' à '[: / home / imran]'
pushandpop
Cela signifie probablement qu'il n'y a pas de conteneurs en cours d'exécution. Vérifiez en exécutant simplement sudo docker ps.
Andreas Veithen
Oui, vous avez raison, j'ai essayé une autre méthode avant d'avoir écrit votre réponse et cela parce qu'ils n'existent pas xD. Qu'en est-il du problème avec "cmd-label"? C'est parce que docker . Dois-je ouvrir un nouveau fil? Je pense que ce sera compliqué de comprendre aux autres ce qui se passe mais ils ne verront pas cette conversation. Savez-vous comment y remédier?
pushandpop
Il s'agit en effet probablement d'un problème distinct.
Andreas Veithen