Cómo filtrar el proceso docker basado en la imagen


He estado tratando de obtener el id del contenedor de la instancia de docker usando el comando docker process, pero cuando estoy tratando con filter by name funciona fine para mí.

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

Resultados id del contenedor:

3c7e865f1dfb

Pero cuando filtro usando image estoy obteniendo todos los id de contenedor de instancia:

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

Resultados id de contenedor:

5570dc09b581

3c7e865f1dfb

Pero deseo para obtener solo el id del contenedor de mariadb.

¿Cómo obtener el id del contenedor del proceso docker utilizando el filtro como imagen ?

 29
Author: Priya Dharshini, 2015-04-02

4 answers

Puede usar awk y grep para filtrar el id de contenedor especificado. Por ejemplo:

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

Esto imprimirá el id de su contenedor.

 27
Author: wsl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-16 17:27:55

Use "ancestro" en lugar de "imagen" que funciona muy bien. Ejemplo:

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

El equipo de Docker puede haberlo añadido en las últimas versiones: http://docs.docker.com/engine/reference/commandline/ps /

 56
Author: Ruben Sancho Ramos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-06 18:28:52

Con un comando docker container ls para listar contenedores (que es un reemplazo para docker ps) la solución sería:

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

También puedes usar * signo(si es necesario) como este:

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

Véase https://docs.docker.com/engine/reference/commandline/container_ls /

 1
Author: heroin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-16 15:37:54
docker ps -a | awk '{ print $1,$2 }' | grep imagename | awk '{print $1 }'

Esto es perfecto. si lo necesita, puede agregar un filtro de imágenes en ejecución de un estado particular solo, como a continuación

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

Varias otras opciones de filtro se pueden explorar aquí

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

 0
Author: Mohammed Rafeeq,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-17 09:43:57