Как фильтровать процесс докеров на основе изображения

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

sudo -S docker ps -q --filter="name=romantic_rosalind"

Идентификатор контейнера результатов:

3c7e865f1dfb

Но когда я фильтрую с использованием изображения, я получаю все идентификаторы контейнера экземпляра:

sudo -S docker ps -q  --filter="image=docker-mariadb:1.0.1"

Результаты Идентификаторы контейнеров:

5570dc09b581

3c7e865f1dfb

Но я хочу получить только идентификатор контейнера mariadb.

Как получить идентификатор контейнера процесса докера, используя фильтр в качестве изображения?

Ответы

Ответ 1

Вы можете использовать awk и grep для фильтрации указанного идентификатора контейнера. Например:

docker ps | grep "docker-mariadb:1.0.1" | awk '{ print $1 }'

Это напечатает идентификатор вашего контейнера.

Ответ 2

Используйте "предок" вместо "изображения", который отлично работает. Пример:

sudo -S docker ps -q  --filter=ancestor=docker-mariadb:1.0.1

Команда Docker, возможно, добавила ее в последние версии: http://docs.docker.com/engine/reference/commandline/ps/

Ответ 3

С помощью docker container ls для листинга контейнеров (который является заменой для docker ps) было бы:

docker container ls | grep "docker-mariadb:1.0.1" | awk '{ print $1 }'

вы также можете использовать знак * (если необходимо) следующим образом:

docker container ls | grep "docker-mariadb:*" | awk '{ print $1 }'

См. Https://docs.docker.com/engine/reference/commandline/container_ls/

Ответ 4

docker ps -a | awk '{ print $1,$2 }' | grep imagename | awk '{print $1 }'

Это потрясающе. если вам нужно, вы можете добавить фильтр запуска изображений только одного stsatus, например, ниже

docker ps -a --filter=running | awk '{ print $1,$2 }' | grep rulsoftreg:5000/mypayroll/cisprocessing-printdocsnotifyconsumer:latest | awk '{print $1 }'

Здесь можно изучить различные варианты фильтров

https://docs.docker.com/v1.11/engine/reference/commandline/ps/