获取Docker容器名称
你可以结合docker ps
和docker 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
Inspect显示了Docker如何处理容器的内部细节。
名称以其父链为前缀和"/
"=="Docker守护程序"。
这就是为什么每个名称都会有这个前缀。
当嵌套和多主机参与进来时,这将更加重要。
"/
"对于inspect命令是正确的。
因此需要使用| cut -c2-
。
最近(2017年6月),有一个提议(moby/moby issue 29997)建议删除"/
":
前导斜杠之所以存在是出于历史原因(主要是因为传统容器连接)
迄今为止(2018年6月),还没有完全实现摆脱前导"/
"的PR。