如果我跑了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
答案 0 :(得分:3)
可接受的答案有效,但是您可能会使用名称错误objectMapper.readValue(jsonFormattedString, TransEvent.class);
但实际上运行完全不同的图像的容器名称,因为答案仅使用// list
objectMapper.readValue(jsonFormattedString, new TypeReference<List<TransEvent>>(){});
// list
objectMapper.readValue(jsonFormattedString, objectMapper.getTypeFactory().constructCollectionType(List.class, TransEvent.class));
// array
TransEvent[] transEvents = objectMapper.readValue(jsonFormattedString, TransEvent[].class);
查找匹配项行。
您可以使用Docker内置的postgres
标志:
grep
作为替代。 filter
标志指示仅返回容器ID(安静模式)。
答案 1 :(得分:1)
如果您想根据图像名称获取容器ID,则该方法应该起作用:
$ docker ps | grep '<image_name>' | awk '{ print $1 }'
甚至:
$ docker ps | awk ' /<image_name>/ { print $1 }'
此外,您可以在使用docker run --name
运行容器时为其命名,然后按照@ kevin-cui建议的名称进行过滤。
答案 2 :(得分:0)
我只需要按映像名称获取最新的正在运行的容器ID,包括已停止的容器:
docker ps -a | grep 'django-content-services:' -m 1 | awk '{ print $1 }'
在docker -a
中包含所有容器(甚至已停止)。在grep中,-m
因此grep仅匹配第一种情况。干杯!