0

我知道 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来获得我需要的输出,并且这些命令的可移植性不够广泛。

4

1 回答 1

0

我找到了一个解决方案docker inspect

$ docker image inspect '--format={{join .RepoTags "\n"}}' sha256:d6e46aa2470df1d32034c6707c8041158b652f38d2a9ae3d7ad7e7532d22ebe0
alpine:3.12

但是它不允许像我们可以用docker images --filter=reference=....

于 2021-12-22T14:04:57.367 回答