2016-02-01 2 views
28

Есть ли какая-либо команда, которая может объединить команду docker stop и docker rm вместе? Каждый раз, когда я хочу удалить запущенный контейнер, мне нужно выполнить 2 команды последовательно, мне интересно, есть ли объединенная команда, которая упростит этот процесс.одиночная команда для остановки и удаления контейнера докера

docker stop CONTAINER_ID 
docker rm CONTATINER_ID 
+1

Это зависит от контейнера: https://www.ctl.io/developers/blog/post/gracefully-stopping-docker-containers/ – VonC

ответ

53

Вы можете использовать:

docker rm -f CONTAINER_ID 

Это удалит контейнер, даже если он по-прежнему работает.

https://docs.docker.com/engine/reference/commandline/rm/

Вы также можете запускать контейнеры с --rm вариант, он будет удален автоматически при остановке.

https://docs.docker.com/engine/reference/run/#clean-up-rm

+0

Будьте осторожны. 'docker rm -f' отправляет сигнал SIGKILL в контейнер. Это может не позволить времени контейнера правильно сохранить свое состояние. Для контейнеров без апатридов следует действительно использовать 'docker stop', за которым следует' docker rm'. Это отправляет сигнал SIGTERM, который по умолчанию предоставляет контейнерам максимум 10 секунд для выполнения их выключения, прежде чем демон docker, наконец, отправит SIGKILL. – Alkaline

0

Для удаления одного контейнера

docker rm -f CONTAINER_ID 

Для удаления всех контейнеров

docker rm -f `docker container ps -qa` 
0

Удалить все контейнеры: docker ps -aq | xargs docker rm -f

0

Это будет остановить и удалить все изображения, в том числе работающих контейнеров как мы используем -f

docker rmi -f $(docker images -a -q) 
Смежные вопросы