Como parar e remover um contêiner de docker?

11

Estou tentando remover uma janela de encaixe / imagem / contêiner e todas as coisas que estão de alguma forma conectadas à janela de encaixe, mas antes de tudo preciso interrompê-lo. Enquanto estou tentando executar este comando:

docker stop $(docker ps -a -q)

Isso me dá um erro:

[:/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.

Como posso desinstalar um contêiner de docker?

pushandpop
fonte

Respostas:

12

Eu consertei! Por favor, não esqueça - todos os seus dados nos contêineres serão removidos!

Então, primeiro de tudo, precisamos executar estes comandos:

# 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

Então precisamos sair, NÃO use a variante GUI, porque não funcionou para mim e fiquei desapontado com isso.

Em vez disso, use este comando:

sudo pkill -u username

Então precisamos ...

1. Mate todos os contêineres em execução

sudo docker kill $(docker ps -q)

2. Exclua todos os contêineres parados

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

3. Exclua todas as imagens 'sem marcação / dangling'

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

4. Exclua todas as imagens

sudo docker rmi $(docker images -q)

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

PS Talvez outras respostas estejam corretas também, mas no momento em que essas respostas foram publicadas, meu problema já estava resolvido e não consigo verificar se estão corretas ou não. Graças a @Andreas. Ele apontou um erro de que os contêineres já foram removidos. Como não encontrei nenhuma solução correta e "tudo em um", quero lhe dizer como você pode corrigi-la.

pushandpop
fonte
Como você remove o roteamento IP restante do ifconfig? dockerainda mostra-se como um dispositivo de rede
6 pés Dan
3

Você precisa executar estes comandos como root, ou seja, usando sudo:

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

Ou:

sudo sh -c "docker stop $(docker ps -a -q)"
Andreas Veithen
fonte
Essa é uma saída normal: pastebin.com/FXhc5TF7 . Também notei que meu "cmd-label" foi alterado. De 'user @ rootf8fds7 $:' to '[: / home / imran]'
pushandpop
Provavelmente, isso significa que não há contêineres em execução. Verifique simplesmente executando sudo docker ps.
Andreas Veithen
Sim, você está certo, eu tentei outro método antes de escrever sua resposta e isso porque eles não existem xD. E quanto ao problema com "cmd-label"? Isso ocorre porque o docker . Devo abrir um novo tópico? Eu acho que será complicado entender os outros o que está acontecendo ainda que eles não vejam essa conversa. Sabes como arranjar isso?
precisa saber é o seguinte
Este é realmente provavelmente um problema separado.
Andreas Veithen