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?
docker ps --format "{{.Names}}"
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
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 «/
».
Vous pouvez le faire avec cette commande inspirée par cette question :
docker inspect --format='{{.Name}}' $(Sudo docker ps -aq --no-trunc)
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/
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.
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