查找最新版本docker镜像的实际版本

问题描述 投票:0回答:6

docker pull jaegertracing/jaeger-agent:latest

Jaeger 仅用于说明。但我的问题更笼统。上述命令从 docker-hub 中提取

latest
版本的
jaeger-agent

docker-hub 页面是:https://hub.docker.com/r/jaegertracing/jaeger-agent

我的问题是如何找到

latest
的实际版本?

我查看了这里的标签,但没有太多信息: https://hub.docker.com/r/jaegertracing/jaeger-agent/tags

我还尝试在拉取图像后执行

inspect
,但无法获得必要的详细信息。

docker image inspect jaegertracing/jaeger-agent:latest

我们可以从哪里获取这些信息?

docker dockerhub
6个回答
11
投票

正如 @max-gasner 提到的,

latest
跟踪 git 存储库的
master
分支是很常见的。这使得工程师能够在发布图像并标记版本之前快速构建和测试图像。这就是为什么不建议在任何需要可重复性的关键地方使用
latest
标签的原因之一。

jaegertracing/jaeger-agent:latest
没有任何其他标签,因此确定您正在使用哪个
latest
“版本”的唯一方法是查看摘要。这唯一地标识了映像构建。标签实际上解析为摘要。因此,当使用
latest
标签构建新图像时,该标签将解析为新图像的摘要。

DockerHub 仅显示简短版本。您可以像这样检查完整摘要:

docker image inspect --format '{{.RepoDigests}}' jaegertracing/jaeger-agent:latest
> [jaegertracing/jaeger-agent@sha256:bacc749faba325fbe39dc13294c2222fb0babc9ecd344c25d9d577720a80b5ca]

2
投票

latest
只是一个与其他标签一样的标签 - 您会需要
docker image inspect
,它将为您提供有关图像上其他标签的信息。

jaegertracing/jaeger-agent:latest
的情况下,该图像看起来没有任何其他标签,因此该图像很可能正在跟踪类似源代码控制存储库的主分支之类的内容,即,它根本不对应于已发布的版本。


2
投票

获取图像id,然后用它替换IMAGE_ID。

docker image inspect --format '{{json .}}' "$IMAGE_ID" | jq -r '. | {Id: .Id, Digest: .Digest, RepoDigests: .RepoDigests, Labels: .Config.Labels}'

0
投票

存在一个问题 Dockerhub 上的摘要与 docker pull 获取的摘要不匹配尚未解决。

@peterevans 的回答和这个答案可以提供帮助。 https://stackoverflow.com/a/64309017/1543768

但是如果机器无法轻松安装某些工具,

Created
是一个易于使用的工具。

$docker images
REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
your-image   latest              4b10e****        22 months ago         15.1MB
$IMAGE_ID=4b10e
$docker image inspect --format '{{.Created }}' $IMAGE_ID
2020-11-15T18:39:27.727222621Z

使用 Dockerhub 检查日期。


0
投票

搜索版

示例1

docker image inspect nameimage:latest --format '{{ .Config.Env }}'

示例2

docker image inspect imageID --format '{{ .Config.Env }}'

根据您的上下文了解更多详细信息

docker image inspect jaegertracing/jaeger-agent:latest --format '{{ .Config.Env }}'

祝你好运:)!


-1
投票

执行 jq -r 时出现以下错误

jq:术语“jq”不被识别为 cmdlet、函数、脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。 在行:1 字符:61

  • ... ocker 图像检查 --format '{{json .}}' "3fda1307ec65" | jq -r '. | ...
  •                                                            ~~
    
    • 类别信息:ObjectNotFound:(jq:字符串)[],CommandNotFoundException
    • FullyQualifiedErrorId:CommandNotFoundException
© www.soinside.com 2019 - 2024. All rights reserved.