获取Docker容器名称

18 浏览
0 Comments

获取Docker容器名称

这个命令会给我返回一个正在运行的容器的ID列表:

docker ps -q

是否有一个命令可以获取容器名称的列表?

admin 更改状态以发布 2023年5月21日
0
0 Comments

你可以结合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-

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

Inspect显示了Docker如何处理容器的内部细节。
名称以其父链为前缀和"/"=="Docker守护程序"。
这就是为什么每个名称都会有这个前缀。
当嵌套和多主机参与进来时,这将更加重要。
"/"对于inspect命令是正确的。

因此需要使用| cut -c2-

最近(2017年6月),有一个提议(moby/moby issue 29997)建议删除"/":

前导斜杠之所以存在是出于历史原因(主要是因为传统容器连接)

迄今为止(2018年6月),还没有完全实现摆脱前导"/"的PR。

0