如何从Docker镜像获取不可变标识符(摘要)列表?

我在dockerhub中有一个Docker镜像 ,而且这个镜像已经build好几次了,因为我需要将PHP版本更新到最新版本。 我需要使用该图像的以前版本,我想要走的路是通过使用不可变的标识符又名摘要。

下面是关于如何通过摘要获取给定图像的文档,但是我找不到从该图像获取所有摘要的方法。

如果你双击一个给定的构build,你会获得一些构build代码的信息,例如: berpxpunhmqe7bqh6lce5ub但我不认为这是一个摘要。

我如何find给定构build的摘要?

假设你有一个以前的版本的标签/标识符和/或在你本地的图像caching中有一个版本, 通过摘要查找摘要使用的摘要可以通过docker image inspect如下:

 $ docker image inspect --format "{{.RepoDigests}}" alpine:3.6 [alpine@sha256:b40e202395eaec699f2d0c5e01e6d6cb8e6b57d77c0e0221600cf0b5940cf3ab] 

在这个例子中,我正在查看高山图像的3.6标签,响应是一个string,我可以使用像docker pull这样的命令:

 $ docker pull alpine@sha256:b40e202395eaec699f2d0c5e01e6d6cb8e6b57d77c0e0221600cf0b5940cf3ab sha256:b40e202395eaec699f2d0c5e01e6d6cb8e6b57d77c0e0221600cf0b5940cf3ab: Pulling from library/alpine Digest: sha256:b40e202395eaec699f2d0c5e01e6d6cb8e6b57d77c0e0221600cf0b5940cf3ab Status: Image is up to date for alpine@sha256:b40e202395eaec699f2d0c5e01e6d6cb8e6b57d77c0e0221600cf0b5940cf3ab 

你的特定图像的潜在问题是,它看起来像latest标签已经用于所有的版本,所以除非你有一个旧的图像的本地caching,可能是很难find旧版本的sha256摘要引用。

如果本地caching的信息没有通过docker system prune或其他清理实用程序删除,则有几种可能的方法来查找先前映像的摘要:

  1. docker images -a | grep <image name> 可以使用docker images -a | grep <image name>来显示所有的图像,包括那些没有标记的图像。 下面的例子显示了一个更新的Ubuntu:最新的地方,我仍然可以访问旧的图像。 使用该ID(不是摘要),我可以使用相同的docker image inspect --format '{{.RepoDigests}}' <image ID>来检索Ubuntu的旧版本的实际摘要。

  2. 如果我有一个正在运行或退出使用图像的先前版本的容器,我可以find该图像的摘要,首先检查容器,find图像ID ,然后检查该图像ID如上所述,并检索旧图像的消化。 在这个有点人为的例子中,我有一个退出的容器, 1edd .. ,我检查find图像ID ,这恰好仍然有效标记,但使用它的ID我可以然后使用image inspect获得摘要,即使它在我的图像caching中不再被标记。

例1:

 $ docker images -a | grep ubuntu ubuntu latest 747cb2d60bbe 3 weeks ago 122MB` ubuntu <none> ebcd9d4fca80 5 months ago 118MB $ docker image inspect --format '{{.RepoDigests}}' ebcd9 [ubuntu@sha256:382452f82a8bbd34443b2c727650af46aced0f94a44463c62a9848133ecb1aa8] 

例2:

 $ docker ps -aq 1edd14b528db $ docker container inspect 1edd | grep Image "Image": "sha256:76da55c8019d7a47c347c0dceb7a6591144d232a7dd616242a367b8bed18ecbc", "Image": "alpine:3.6", $ docker image inspect --format '{{.RepoDigests}}' 76da55 [alpine@sha256:f006ecbb824d87947d0b51ab8488634bf69fe4094959d935c0c103f4820a417d]