Haal Docker-containernamen op

Deze opdracht geeft me een lijst met lopendecontainer ID’s:

docker ps -q

Is er een commando om de lijst met namenvan de containers te krijgen?


Antwoord 1, autoriteit 100%

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

Antwoord 2, autoriteit 17%

Je kunt docker pscombineren met docker inspect, zoals ik al eerder zei in ” Hoe vermeld je containers in Docker.io?“:

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

Zoals opgemerktdoor Chris Stryczynski, worden namen afgedrukt met een ‘/‘ als voorvoegsel.

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

Van moby/moby uitgave 6705:

Inspect onthult de innerlijke details van hoe de havenarbeider met de container omgaat.
Namen worden voorafgegaan door hun ouder en /== “de docker-daemon”.
Daarom krijgt elke naam dit als voorvoegsel.
Dit is belangrijker wanneer nesting en multihost in het spel komen.
De /is correct voor het inspect-commando.

Vandaar de | cut -c2-.

Meer recent (juni 2017) is er een voorstel (moby/moby issue 29997) voor het verwijderen van de ‘/‘:

de slash is er om historische redenen (voornamelijk vanwege de legacy container-linking)

Tot nu toe (juni 2018) is er nog geen volledige PR geïmplementeerd om de leidende ‘/‘ te verwijderen.


Antwoord 3, autoriteit 12%

Je zou dat kunnen doen met deze opdracht, geïnspireerd op deze vraag:

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

Antwoord 4, autoriteit 10%

Je kunt het ook doen met awk:

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

$NFgeeft de laatste kolom van de invoer aan, die in de opdracht docker ps -aNamen is.


Antwoord 5, autoriteit 9%

U kunt de volgende opdracht gebruiken om namen van containers weer te geven

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

Hier is een referentielink voor meer informatie over het ps-commando
https://docs.docker.com/engine/reference/commandline/ps/


Antwoord 6, autoriteit 2%

Mijn vereiste is om de gebruikersnaam van de containerte krijgen om in te loggen in de container (ik moet docker exec -it --usergebruiken om in te loggen op de container). Gebruik docker inspect+ container iden grepuserof namedan kun je de Containergebruikersnaamen log in op de container.

Voorbeeld:

   # docker inspect 5791b95933ef |grep -i user

Other episodes