获取Docker容器名称

时间:2015-08-07 22:00:32

标签: linux docker containers

此命令为我提供正在运行容器 ID 的列表:

docker ps -q

是否有命令获取容器的名称列表?

6 个答案:

答案 0 :(得分:41)

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

答案 1 :(得分:12)

您可以将docker psdocker inspect结合使用,如前所述" 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-

commented作为Chris Stryczynski,它将使用' /'打印名称。作为前缀。

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

来自moby/moby issue 6705

  

检查公开了码头工人如何处理集装箱的内部细节   名称以其父级和/ ==" docker守护程序"为前缀。   这就是为什么每个名字都有这个前缀   当嵌套和多主机发挥作用时,这将更加重要   /对于inspect命令是正确的。

因此| cut -c2-

最近(2017年6月),有一项提案(moby/moby issue 29997)用于删除&{39; /':

  

由于历史原因(主要是因为传统的容器链接),导致斜杠存在

到目前为止(2018年6月),还没有完全实施公关以摆脱领先的/'

答案 2 :(得分:8)

你可以使用this question启发的这个命令来做到这一点:

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

答案 3 :(得分:2)

您可以使用以下命令显示容器的名称

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

此处是有关ps命令的更多信息的参考链接 https://docs.docker.com/engine/reference/commandline/ps/

答案 4 :(得分:1)

您也可以使用awk做到这一点:

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

$NF表示输入的最后一列,在docker ps -a命令中是名称。

答案 5 :(得分:1)

我的要求是获取容器用户名来登录到容器(我需要使用“ docker exec -it --user”来登录容器)。使用docker inspect +“容器ID”和grep“用户”或“名称”,然后您可以获得容器用户名并登录到容器中。 示例:

with tf.device('/cpu:0'):