如何通过命令行获取基于 docker 图像名称的容器 ID?
How to obtain container id base on docker image name via command line ?
如果我 运行 sudo doccker ps
我得到这个
[user@vm1 ~]$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e8ff73dec1d5 portal-mhn:latest "nginx -g 'daemon of…" 43 minutes ago Up 43 minutes portal-mhn_portal-mhn.1.4rsfv94wy97gb333q3kfyxz32
62a7cf09d7bf portal-admin:latest "nginx -g 'daemon of…" 43 minutes ago Up 43 minutes portal-admin_portal-admin.1.s62iep4gl5g5oj2hrap14kz1t
我正在尝试根据 ImageName 获取容器 ID。
例如。是否可以通过命令行获取 portal-mhn:latest 的容器 ID?这是 e8ff73dec1d5
如果您想根据图像名称获取容器 ID,这应该可行:
$ docker ps | grep '<image_name>' | awk '{ print }'
甚至:
$ docker ps | awk '/<image_name>/ { print }'
正如其他人所建议的,您也可以使用 ancestor
过滤器直接按图像名称进行过滤:
$ docker ps -aqf "ancestor=<image_name>"
这样做的好处是可以作为 image_name
值的字符串,而不是寻找匹配的模式。感谢@kevin-cui 和@yu-chen。
接受的答案有效,但您可能有一个错误的容器名称,其名称中包含 postgres
但实际上是 运行 完全不同的图像,因为答案仅使用 grep
寻找匹配的行。
您可以使用 Docker 的内置 filter
标志:
docker ps --filter "ancestor=postgres" -q
作为替代方案。 -q
标志仅指示 return 容器 ID(安静模式)。
我只需要通过图像名称获取最新的 运行 容器 ID,包括已停止的容器:
docker ps -a | grep 'django-content-services:' -m 1 | awk '{ print }'
在 docker -a
中包括所有容器(甚至停止)。在grep中,-m
所以grep只匹配第一种情况。干杯!
如果我 运行 sudo doccker ps
我得到这个
[user@vm1 ~]$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e8ff73dec1d5 portal-mhn:latest "nginx -g 'daemon of…" 43 minutes ago Up 43 minutes portal-mhn_portal-mhn.1.4rsfv94wy97gb333q3kfyxz32
62a7cf09d7bf portal-admin:latest "nginx -g 'daemon of…" 43 minutes ago Up 43 minutes portal-admin_portal-admin.1.s62iep4gl5g5oj2hrap14kz1t
我正在尝试根据 ImageName 获取容器 ID。
例如。是否可以通过命令行获取 portal-mhn:latest 的容器 ID?这是 e8ff73dec1d5
如果您想根据图像名称获取容器 ID,这应该可行:
$ docker ps | grep '<image_name>' | awk '{ print }'
甚至:
$ docker ps | awk '/<image_name>/ { print }'
正如其他人所建议的,您也可以使用 ancestor
过滤器直接按图像名称进行过滤:
$ docker ps -aqf "ancestor=<image_name>"
这样做的好处是可以作为 image_name
值的字符串,而不是寻找匹配的模式。感谢@kevin-cui 和@yu-chen。
接受的答案有效,但您可能有一个错误的容器名称,其名称中包含 postgres
但实际上是 运行 完全不同的图像,因为答案仅使用 grep
寻找匹配的行。
您可以使用 Docker 的内置 filter
标志:
docker ps --filter "ancestor=postgres" -q
作为替代方案。 -q
标志仅指示 return 容器 ID(安静模式)。
我只需要通过图像名称获取最新的 运行 容器 ID,包括已停止的容器:
docker ps -a | grep 'django-content-services:' -m 1 | awk '{ print }'
在 docker -a
中包括所有容器(甚至停止)。在grep中,-m
所以grep只匹配第一种情况。干杯!