Get Docker Container Names Get Docker Container Names linux linux

Get Docker Container Names


docker ps --format "{{.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)