【问题标题】:Docker: how to display all the references of an image by its id?Docker:如何通过 id 显示图像的所有引用?
【发布时间】:2022-01-23 17:47:20
【问题描述】:

我知道 Docker 映像的 ID。我想列出所有指向该图像的引用(名称)(或者即使它根本没有引用)。

尽管docker imagemany filtering capabilities 我还没有找到如何过滤输出以将其限制为单个图像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}}'

注意:不,我不想使用grepsed,因为我想使用--format 的全部功能来获得我需要的输出,而这些命令的可移植性不够广泛.

【问题讨论】:

    标签: docker docker-image docker-cli


    【解决方案1】:

    我找到了docker inspect的解决方案:

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

    但是它不允许像我们对 docker images --filter=reference=... 所做的那样过滤引用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-08
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多