Как удалить указанные c запущенные docker контейнеры в пакете - PullRequest
0 голосов
/ 31 марта 2020

Мне нужно запустить более 70 docker контейнеров одновременно. Позже эти контейнеры необходимо остановить.

В настоящее время я могу docker stop всех из них с помощью команды оболочки docker stop $(docker ps -f since=<last docker before>). Это работает нормально, но если после моего запуска будут запущены какие-либо контейнеры, у меня возникнет проблема, так как приведенный выше код их тоже остановит.

Есть ли способ закрыть все запущенные контейнеры с какой-то спецификацией c поиск?

Я знаю, что есть docker ps -f label=<some label>, но я пока не понял, как его использовать.

1 Ответ

2 голосов
/ 31 марта 2020

Если вы запускаете много контейнеров одновременно, запустите их все с

docker run --label=anyname other-docker-args-of-yours image:tag

И когда вы хотите удалить все ваши контейнеры, просто сделайте

docker stop $(docker ps -f label=anyname | awk 'NR>1 {print$1}')

где anyname - это имя метки, которое вы указываете во время команды docker run, а awk 'NR>1 {print$1}' игнорирует заголовок столбца CONTAINER_ID и просто печатает только значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...