图像标签不存在时如何查看 docker 个图像层

How to see docker image layers when image tag is not present

我正在尝试 "docker image history" 命令的各种选项,以查看用于在我的本地计算机上构建图像的图像层。

我的系统上有一个未分配标签的 nginx 映像。所以 "docker images" 命令在我的系统中列出了以下图像。

我尝试使用以下命令查找 nginx 图像的图层详细信息:

docker image history nginx

但由于未指定标签名称,docker-cli 认为它是默认的“latest”标签,该标签在我的系统中不存在,我正在关注错误:

Error response from daemon: No such image: nginx:latest

我用“none”作为标签尝试了相同的命令,但它也失败并出现以下错误:

docker image history nginx:none
Error response from daemon: No such image: nginx:none

有什么建议吗?我们如何查看未分配标签的图像层。

尝试使用 ID 而不是带有标签的名称。

假设我有 docker images

的输出
REPOSITORY TAG      IMAGE ID       CREATED      SIZE
postgres   <none>   1f0815c1cb6e   7 weeks ago  314M

我可以使用 docker image history 并指定足以识别此上下文中图像的 ID 或其中的一部分。

docker image history 1f0
docker history <your-docker-image-id>

你的情况如下:

docker history 7ce4f91ef623

我找到了 docker images 命令的 --filter 选项,我们可以使用它来查找 dangling/untagged 图像,如下所示:

docker images -f "dangling=true" --quiet

我们可以使用此命令列出未标记图像的图像层,如下所示:

docker image history  $(docker images -f "dangling=true" --quiet)