Docker: Существует ли команда `docker ps`, которая перечисляет только привилегированные контейнеры? - PullRequest
0 голосов
/ 06 ноября 2018

Я хочу получить список только привилегированных контейнеров Docker. docker ps перечисляет все запущенные контейнеры по умолчанию. Я прочесал документацию, но ничего не смог найти.

Возможно ли использовать API или есть другой способ сделать это?

1 Ответ

0 голосов
/ 06 ноября 2018

Возможно, есть лучший способ сделать это, но с помощью оболочки вы можете сделать что-то вроде:

 docker inspect --format='{{.ID}} {{.HostConfig.Privileged}}' $(docker ps | awk '{if(NR>1) print $1 }') | grep true

Docker Inspection будет проверять отдельный контейнер. Свойство, которое мы проверяем, - .HostConfig.Privileged

- формат будет возвращать id и true или false, если контейнер будет привилегирован. $(docker ps | awk '{if(NR>1)

мы используем подстановку команд в конце, чтобы вернуть идентификаторы контейнеров из докера ps

Изменить, чтобы сделать команду более эффективной

Улучшение в соответствии с комментарием удаляет канал к awk и делает команду более эффективной. Чтобы отобразить только контейнеры привилегированных контейнеров, результат передается grep в поисках true.

docker inspect --format='{{.ID}} {{.HostConfig.Privileged}}' $(docker ps --format='{{.ID}}') | grep true 

Если мы удалим последний канал, мы перечислим все запущенные контейнеры и отметим true или false, чтобы указать привилегированный статус

docker inspect --format='{{.ID}} {{.HostConfig.Privileged}}' $(docker ps --format='{{.ID}}')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...