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?

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.


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)"

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.