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 ?
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.
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 /
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 /
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 /
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