我知道 Docker 映像的 ID。我想列出所有指向该图像的引用(名称)(或者即使它根本没有引用)。
尽管docker image
有许多过滤功能,但我还没有找到如何过滤输出以将其限制为单个图像 ID。
例子:
$ docker images --no-trunc --filter=reference=alpine:3.12 '--format={{.ID}} {{printf "%s:%-26s" .Repository .Tag}} {{.CreatedAt}}'
sha256:d6e46aa2470df1d32034c6707c8041158b652f38d2a9ae3d7ad7e7532d22ebe0 alpine:3.12 2020-10-22 04:19:24 +0200 CEST
我希望这些命令之一能够工作,但它们没有:
$ docker images --no-trunc '--format={{.|json}}' sha256:d6e46aa2470df1d32034c6707c8041158b652f38d2a9ae3d7ad7e7532d22ebe0 | wc -l
0
$ docker images --no-trunc '--format={{.|json}}' --filter=ID=sha256:d6e46aa2470df1d32034c6707c8041158b652f38d2a9ae3d7ad7e7532d22ebe0
Error response from daemon: Invalid filter 'id'
我也尝试使用自定义格式进行过滤,但这为每个不匹配的图像提供了一个空行,这不是我想要的。
docker images --no-trunc '--format={{if eq .ID "sha256:d6e46aa2470df1d32034c6707c8041158b652f38d2a9ae3d7ad7e7532d22ebe0"}}{{.|json}}{{end}}'
注意:不,我不想使用grep
,或者sed
因为我想使用的全部功能--format
来获得我需要的输出,并且这些命令的可移植性不够广泛。