web-dev-qa-db-fra.com

Obtenir les noms de conteneurs Docker

Cette commande me donne une liste de running container IDs :

docker ps -q

Existe-t-il une commande pour obtenir la liste des noms des conteneurs?

27
corey

docker ps --format "{{.Names}}"

38
cleong

Vous pouvez combiner docker ps avec docker inspect , comme je l’ai déjà mentionné dans " Comment lister les conteneurs dans Docker.io? ":

docker inspect --format='{{.Name}}' $(Sudo docker ps -aq --no-trunc)
docker inspect --format='{{.Name}}' $(Sudo docker ps -aq --no-trunc) | cut -c2-

Comme commenté par Chris Stryczynski , il affichera les noms avec le préfixe '/'. 

vagrant@master:~$ docker inspect --format='{{.Name}}' $(Sudo docker ps -aq --no-trunc)
/k8s_kubernetes-dashboard_kubernetes-dashboard-d9d8f48bc-vz59c_kube-system_b2abc584-730a_0
/k8s_POD_kubernetes-dashboard-d9d8f48bc-vz59c_kube-system_b2abc584-_0
/k8s_metrics-server_metrics-server-6fbfb84cdd-sjrgr_kube-system_e147bf91-7218-11e8-8266_0
/k8s_POD_metrics-server-6fbfb84cdd-sjrgr_kube-system_e147bf91-7218-11e8-8266-00155d380143_0

De moby/numéro de moby 6705 :

Inspect expose les détails internes de la manière dont docker gère le conteneur.
Les noms sont préfixés avec leur parent et / == "le démon docker".
C'est pourquoi chaque nom aura ce préfixe.
Ce sera plus important lors de la nidification et de la multihôte.
Le / est correct pour la commande inspect.

D'où le | cut -c2-.

Plus récemment (juin 2017), une proposition ( moby/moby numéro 29997 ) vise à supprimer le '/':

la barre oblique principale est là pour des raisons historiques (principalement en raison de la liaison de conteneur avec l'ancien système)

Jusqu'ici (juin 2018), aucun PR n'a été entièrement mis en œuvre pour se débarrasser du «/».

11
VonC

Vous pouvez le faire avec cette commande inspirée par cette question :

docker inspect --format='{{.Name}}' $(Sudo docker ps -aq --no-trunc)
7
h3nrik

Vous pouvez utiliser la commande suivante pour afficher les noms de conteneur

docker ps -a --format "table {{.ID}}\t{{.Names}}"

Voici un lien de référence pour plus d’informations sur la commande ps https://docs.docker.com/engine/reference/commandline/ps/

1
Maulik Parmar

Vous pouvez aussi le faire en utilisant awk:

docker ps -a | awk '{print $NF}'

$NF indique la dernière colonne de l'entrée qui, dans la commande docker ps -a, est Noms.

0
Lefteris Xris

Mon besoin est d'obtenir le nom d'utilisateur container pour pouvoir vous connecter au conteneur (j'ai besoin d'utiliser "docker exec -it --user" pour vous connecter au conteneur). Utilisez docker inspect + "ID conteneur" et grep "utilisateur" ou "nom", vous pouvez alors obtenir Nom d'utilisateur conteneur et vous connecter au conteneur . Exemple: 

    # docker inspect 5791b95933ef |grep -i user
0
kain