Get Docker Container Names
You can combine docker ps
with docker inspect
, as I mentioned before in "How do you list 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-
As commented by Chris Stryczynski, it will print names with a '/
' as a prefix.
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
From moby/moby issue 6705:
Inspect exposes the inner details of how docker is handling the container.
Names are prefixed with their parent and/
== "the docker daemon".
That is why every name will have this prefixed.
This will be more important when nesting and multihost come into play.
The/
is correct for the inspect command.
Hence the | cut -c2-
.
More recently (June 2017), there is a proposal (moby/moby issue 29997) for removing the '/
':
the leading slash is there for historical reasons (mainly because of the legacy container-linking)
So far (June 2018), no PR has been fully implemented to get rid of the leading '/
'.
You could do that with this command inspired by this question:
docker inspect --format='{{.Name}}' $(sudo docker ps -aq --no-trunc)