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 ps
combineren 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
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}'
$NF
geeft de laatste kolom van de invoer aan, die in de opdracht docker ps -a
Namen 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 --user
gebruiken om in te loggen op de container). Gebruik docker inspect
+ container id
en grep
user
of name
dan kun je de Containergebruikersnaamen log in op de container.
Voorbeeld:
# docker inspect 5791b95933ef |grep -i user