我有大约一年前创建的Docker映像。 Dockerfile包含:
FROM docker:stable
如何确定stable
在构建映像时所引用的docker映像的实际版本?
编辑:简而言之,我想做的是将FROM docker:stable
替换为FROM docker:X.Y.Z
,其中XYZ是“稳定”指向一年前最初构建映像时所指向的版本标签。
答案 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上的旧线程将提供一些信息。
我不确定如何获取标签,因为我不认为此标签存储在映像本身中,而是存储在存储库中。因此,您必须查询存储库本身,或者获取图像历史记录的完整列表并对其进行侦探。