Остановить докер-контейнеры с именем, соответствующим шаблону - PullRequest
1 голос
/ 12 июля 2019

Я использую puckel/docker-airflow с CeleryExecutor.Он запускает всего 5 контейнеров с такими именами

docker-airflow_flower_1_de2035f778e6
docker-airflow_redis_1_49d2e710e82b
..

Во время разработки мне часто приходится останавливать все вышеупомянутые контейнеры.Тем не менее, я не могу выполнить docker stop $(docker ps -aq), так как на моей машине работают и другие контейнеры.

Есть ли способ остановить все контейнеры, имена которых соответствуют заданному шаблону (например, все контейнеры, имена которых начинаютсяс docker-airflow выше)?

1 Ответ

2 голосов
/ 12 июля 2019

Из этой статьи @ james-coyle , следующая команда работает для меня

docker ps --filter name=docker-airflow* --filter status=running -aq | xargs docker stop

Я считаю, что docker CLI изначально не обеспечивает такую ​​функциональность, поэтому мы должны полагаться на фильтрацию и старые добрые bash ТРУБА и xargs


UPDATE-1

Обратите внимание, что в зависимости от вашей среды, вам, возможно, придется сделать это

  • запускать команды Docker с помощью sudo (просто добавьте обе docker .. команды выше с sudo)
  • заключить шаблон имени в двойные кавычки --filter name="docker-airflow*" (особенно в zsh)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...