6
votes

Comment obtenir la base d'identifiant de conteneur sur le nom de l'image Docker via la ligne de commande?

Si j'ai exécuté sudo doccker ps , j'ai obtenu ce

[user@vm1 ~]$ sudo docker ps 

CONTAINER ID        IMAGE                          COMMAND                  CREATED                  STATUS                  PORTS                        NAMES
e8ff73dec1d5        portal-mhn:latest         "nginx -g 'daemon of…"   43 minutes ago           Up 43 minutes  portal-mhn_portal-mhn.1.4rsfv94wy97gb333q3kfyxz32
62a7cf09d7bf        portal-admin:latest       "nginx -g 'daemon of…"   43 minutes ago           Up 43 minutes  portal-admin_portal-admin.1.s62iep4gl5g5oj2hrap14kz1t  

J'essaie de récupérer la base d'ID de conteneur sur ImageName.

Ex. Est-il possible de récupérer l'identifiant du conteneur de portal-mhn: latest via une ligne de commande? qui est e8ff73dec1d5


1 commentaires

Filtrer par nom d'IMAGE sudo docker ps -aqf "ancestor = portal-mhn: latest" stackoverflow.com/questions/34496882/...


3 Réponses :


9
votes

Si vous souhaitez obtenir l'ID du conteneur en fonction du nom de l'image, cela devrait fonctionner:

$ docker ps -aqf "ancestor=<image_name>"

Ou même:

$ docker ps | awk ' /<image_name>/ { print $1 }'

Comme d'autres ont suggéré que vous pouvez également filtrer directement par le nom de l'image en utilisant le filtre ancêtre :

$ docker ps | grep '<image_name>' | awk '{ print $1 }'

Ceci a l'avantage d'être une chaîne sur le image_name au lieu de rechercher un modèle correspondant. Merci à @ kevin-cui et @ yu-chen.


1 commentaires

Je vous remercie. Travail parfait



7
votes

La réponse acceptée fonctionne, mais vous pourriez avoir un nom de conteneur mal nommé qui a postgres dans son nom mais qui exécute en fait une image totalement différente, car la réponse n'utilise que grep code> pour rechercher les lignes correspondantes.

Vous pouvez utiliser l'indicateur filter intégré de Docker:

docker ps --filter "ancestor=postgres" -q

comme alternative. L'indicateur -q indique de ne renvoyer que l'ID du conteneur (mode silencieux).


0 commentaires

0
votes

Je n'avais besoin que d'obtenir le dernier identifiant de conteneur en cours d'exécution par nom d'image, y compris les conteneurs arrêtés:

docker ps -a | grep 'django-content-services:' -m 1 | awk '{ print $1 }'

Dans le docker -a pour inclure tous les conteneurs (même arrêtés ). Dans grep, -m donc grep ne correspond qu'au premier cas. Bravo!


0 commentaires