Есть ли какая-нибудь команда, которая может объединить команду docker stop
и docker rm
команду вместе? Каждый раз, когда я хочу удалить работающий контейнер, мне нужно последовательно выполнять 2 команды. Интересно, может ли объединенная команда упростить этот процесс?
docker stop CONTAINER_ID
docker rm CONTATINER_ID
Ответы:
Ты можешь использовать :
Он удалит контейнер, даже если он все еще работает.
https://docs.docker.com/engine/reference/commandline/rm/
Вы также можете запустить ваши контейнеры с
--rm
опцией, они будут автоматически удалены при остановке.https://docs.docker.com/engine/reference/run/#clean-up-rm
Edit:
rm -f
может быть опасно для ваших данных и лучше всего подходит для тестирования или разработки контейнеров. Комментарий @ Бернарда на эту тему стоит прочитать.источник
docker rm -f
отправляет сигнал SIGKILL в контейнер. Это может не позволить контейнеру правильно сохранить свое состояние. Для не контейнеров без гражданства один действительно должны использоватьdocker stop
затемdocker rm
. Это отправляет сигнал SIGTERM, который по умолчанию дает контейнерам максимум 10 секунд, чтобы выполнить их отключение, прежде чем демон Docker наконец отправит SIGKILL.источник
Вы можете остановить и удалить контейнер с помощью одной команды, которая
$_
дает вам последнее эхоисточник
В моем случае для удаления всех запущенных контейнеров я использовал
источник
https://www.ctl.io/developers/blog/post/gracefully-stopping-docker-containers/
Вы можете использовать kill, а также используя rm и флаг Force, он также будет использовать kill.
источник
Удалить все контейнеры:
docker ps -aq | xargs docker rm -f
источник
sudo docker ps -aq | sudo xargs docker rm -f
Это остановит и удалит все образы, включая запущенные контейнеры, так как мы используем -f
источник
Используйте команду docker ps с флагом -a, чтобы найти имя или идентификатор контейнеров, которые вы хотите удалить.
Чтобы удалить: $ docker rm ID_or_Name ID_or_Name
Удалить контейнер при выходе:
Если вы знаете, что при создании контейнера вам не захочется его хранить, как только вы закончите, вы можете запустить docker run --rm, чтобы автоматически удалить его при выходе.
Запустите и удалите:
docker run --rm image_name
Удалить все вышедшие контейнеры:
Вы можете найти контейнеры с помощью docker ps -a и отфильтровать их по статусу: создан, перезапущен, запущен, приостановлен или завершен. Чтобы просмотреть список вышедших контейнеров, используйте флаг -f для фильтрации по статусу. Когда вы подтвердите, что хотите удалить эти контейнеры, используйте -q для передачи идентификаторов команде docker rm.
Список:
Удалить контейнеры, используя более одного фильтра :
Фильтры Docker можно комбинировать, повторяя флаг фильтра с дополнительным значением. Это приводит к списку контейнеров, которые удовлетворяют любому условию. Например, если вы хотите удалить все контейнеры, помеченные как Созданные (состояние, которое может возникнуть при запуске контейнера с недопустимой командой) или Выходные, вы можете использовать два фильтра:
Остановите и удалите все контейнеры:
источник
Для удаления одного контейнера
Для удаления всех контейнеров
источник
Удалить все остановленные контейнеры
docker system prune
Чтобы остановить живой контейнер,
docker stop CONTAINER_ID
ждет 10 секунд и он вызываетdocker kill CONTAINER_ID
Или
docker kill CONTAINER_ID
, вы можете немедленно остановить контейнеристочник