Как остановить и удалить докер-контейнер?


11

Я пытаюсь удалить докер / изображение / контейнер и все, что так или иначе связано с докером, но прежде всего мне нужно это остановить. Пока я пытаюсь выполнить эту команду:

docker stop $(docker ps -a -q)

Это дает мне ошибку:

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

Как я могу удалить докер контейнер?

Ответы:


12

Я исправил это! Пожалуйста, не забывайте - все ваши данные в контейнерах будут удалены!

Итак, прежде всего нам нужно выполнить следующие команды:

# 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

Затем мы должны выйти из системы, не использовать GUI-вариант, потому что он не работает для меня, и я был разочарован этим.

Вместо этого используйте эту команду:

sudo pkill -u username

Тогда нам нужно ...

1. Убить все работающие контейнеры

sudo docker kill $(docker ps -q)

2. Удалить все остановленные контейнеры

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

3. Удалите все изображения без меток

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

4. Удалить все изображения

sudo docker rmi $(docker images -q)

Источники:
https://www.calazan.com/docker-cleanup-commands/
http://www.linuxquestions.org/questions/ubuntu-63/how-do-i-log-out-via-terminal-928183/

PS Возможно, другие ответы тоже верны, но на момент публикации этих ответов моя проблема уже была устранена, и я не могу проверить, верны они или нет. Спасибо @Andreas. Он указал на ошибку, что контейнеры уже были удалены. Поскольку я не нашел правильного и «все в одном» решения, я хочу рассказать вам, как вы можете это исправить.


Как удалить оставшуюся IP-маршрутизацию из ifconfig? dockerпо-прежнему отображается как сетевое устройство
футов Дан

3

Вам нужно выполнить эти команды как root, т.е. используя sudo:

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

Или:

sudo sh -c "docker stop $(docker ps -a -q)"

Это нормальный вывод: pastebin.com/FXhc5TF7 . Также я заметил, что моя "cmd-метка" изменилась. От 'user @ rootf8fds7 $:' до '[: / home / imran]'
pushandpop

Вероятно, это означает, что нет работающих контейнеров. Проверьте, просто запустив sudo docker ps.
Андреас Вайтен

Да, вы правы, я пробовал другой метод, прежде чем вы написали свой ответ, и это потому, что они не существуют xD. Как насчет проблемы с "cmd-label"? Это потому что докер . Должен ли я открыть новую тему? Я думаю, что будет сложно понять других, что происходит, но они не увидят этот разговор. Вы знаете, как это исправить?
pushandpop

Это действительно, вероятно, отдельная проблема.
Андреас Вайтен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.