wake-up-neo.net

Rufen Sie Docker-Containernamen ab

Dieser Befehl gibt mir eine Liste von running container IDs :

docker ps -q

Gibt es einen Befehl, um die Liste der Namen der Container abzurufen?

27
corey

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

38
cleong

Sie können docker ps mit docker inspect kombinieren, wie bereits erwähnt in " Wie listen Sie Container in Docker.io auf? ":

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

Wie kommentiert von Chris Stryczynski , werden Namen mit einem "/" als Präfix gedruckt. 

[email protected]:~$ 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

Aus moby/moby Ausgabe 6705 :

Inspect legt die inneren Details der Handhabung des Containers im Andockfenster offen.
Namen werden mit dem übergeordneten Element und / == "dem Docker-Dämon" vorangestellt.
Deshalb wird jedem Namen dieses Präfix vorangestellt.
Dies wird wichtiger, wenn Verschachtelung und Multihost ins Spiel kommen.
Der / ist für den Befehl inspect korrekt.

Daher der | cut -c2-.

In jüngerer Zeit (Juni 2017) gibt es einen Vorschlag ( moby/moby Ausgabe 29997 ) zur Entfernung des '/':

der führende Schrägstrich ist aus historischen Gründen vorhanden (hauptsächlich wegen der älteren Container-Verknüpfung)

Bisher (Juni 2018) wurde keine PR vollständig implementiert, um den führenden "/" zu beseitigen.

11
VonC

Sie könnten dies mit diesem Befehl tun, der von dieser Frage inspiriert wurde:

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

Sie können den folgenden Befehl verwenden, um die Namen des Containers anzuzeigen

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

Hier finden Sie einen Referenzlink für weitere Informationen zu ps command https://docs.docker.com/engine/reference/commandline/ps/

1
Maulik Parmar

Sie können es auch mit awk machen:

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

$NF gibt die letzte Spalte der Eingabe an, die im Befehl docker ps -a Namen lautet.

0
Lefteris Xris

Meine Anforderung ist, den Container-Benutzernamen zu erhalten, um sich im Container anzumelden. Verwenden Sie Docker inspect + "container id" und grep "user" oder "name". Dann können Sie den Container User Name aufrufen und sich in den Container einloggen . Beispiel: 

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