如何确定根据最新/稳定标记构建的Docker映像的特定版本?

时间:2018-12-21 17:49:18

标签: docker dockerfile

我有大约一年前创建的Docker映像。 Dockerfile包含:

FROM docker:stable

如何确定stable在构建映像时所引用的docker映像的实际版本?

编辑:简而言之,我想做的是将FROM docker:stable替换为FROM docker:X.Y.Z,其中XYZ是“稳定”指向一年前最初构建映像时所指向的版本标签。

1 个答案:

答案 0 :(得分:2)

根据this answer的建议

docker inspect --format='{{index .RepoDigests 0}}' $IMAGE

这将为您提供图像的sha256哈希。

然后,您可以使用MicroBadger之类的服务来获取有关该特定版本的更多信息。


如果要重新创建Dockerfile,可以使用docker history来检查层历史:

$ docker history docker

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
3e23a5875458        8 days ago          /bin/sh -c #(nop) ENV LC_ALL=C.UTF-8            0 B
8578938dd170        8 days ago          /bin/sh -c dpkg-reconfigure locales &&    loc   1.245 MB
be51b77efb42        8 days ago          /bin/sh -c apt-get update && apt-get install    338.3 MB
4b137612be55        6 weeks ago         /bin/sh -c #(nop) ADD jessie.tar.xz in /        121 MB
750d58736b4b        6 weeks ago         /bin/sh -c #(nop) MAINTAINER Tianon Gravi <ad   0 B
511136ea3c5a        9 months ago                                                        0 B    

请记住,如果手动修改了图像,我不知道此输出的可靠性。


最后,如果您想进入完全黑客模式,Docker community forums上的旧线程将提供一些信息。

我不确定如何获取标签,因为我不认为此标签存储在映像本身中,而是存储在存储库中。因此,您必须查询存储库本身,或者获取图像历史记录的完整列表并对其进行侦探。