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
我们可以从哪里获取这些信息?
正如 @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]
latest
只是一个与其他标签一样的标签 - 您会需要 docker image inspect
,它将为您提供有关图像上其他标签的信息。
在
jaegertracing/jaeger-agent:latest
的情况下,该图像看起来没有任何其他标签,因此该图像很可能正在跟踪类似源代码控制存储库的主分支之类的内容,即,它根本不对应于已发布的版本。
获取图像id,然后用它替换IMAGE_ID。
docker image inspect --format '{{json .}}' "$IMAGE_ID" | jq -r '. | {Id: .Id, Digest: .Digest, RepoDigests: .RepoDigests, Labels: .Config.Labels}'
存在一个问题 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 检查日期。
搜索版
示例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 }}'
祝你好运:)!
执行 jq -r 时出现以下错误
jq:术语“jq”不被识别为 cmdlet、函数、脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。 在行:1 字符:61
~~