You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Docker镜像的索引摘要(Index Digest)确定对应的Ubuntu 22.04具体版本?

如何通过Docker镜像的索引摘要(Index Digest)确定对应的Ubuntu 22.04具体版本?

嘿,这个问题我太懂了——用Docker时想锁定镜像版本,结果发现tag会悄悄更新,digest又不知道对应哪个系统版本,确实挺头疼的。我给你分享几个实用的办法,亲测有效:

方法一:拉取镜像后直接查看系统版本

这是最直接的方式,你可以用目标digest启动一个临时容器,然后查看系统的版本信息。运行下面的命令:

docker run --rm ubuntu@sha256:<你的摘要值> cat /etc/os-release

替换成实际的digest后,输出里会有类似这样的内容:

VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_ID="22.04"
VERSION_CODENAME=jammy

这里的VERSION字段就明确显示了具体的点版本(22.04.4)。--rm参数会在容器退出后自动删除,不会占用多余空间。

方法二:先锁定具体点版本标签,再获取对应digest

既然你明确想要Ubuntu 22.04.4,不如先拉取带这个具体点版本的镜像,然后提取它的digest,之后就用这个digest来拉取镜像,确保每次都是同一个版本。步骤如下:

  1. 拉取指定点版本的镜像:
docker pull ubuntu:22.04.4
  1. 查看该镜像的digest:
docker inspect ubuntu:22.04.4 | grep -A2 "Digest"

输出会显示类似"Digest": "sha256:xxxxxx..."的内容,把这个sha256值记下来,之后直接用ubuntu@sha256:xxxxxx来拉取镜像,就永远是22.04.4版本了。

方法三:用工具远程查看镜像元数据(无需拉取整个镜像)

如果不想下载整个镜像,可以用skopeo这个工具来远程查看镜像的配置信息,里面包含系统版本。安装好skopeo后运行:

skopeo inspect docker://ubuntu@sha256:<你的摘要值>

在输出的Config -> Env部分,你能找到VERSION_ID="22.04"和VERSION="22.04.4 LTS (Jammy Jellyfish)"的字段,直接就能看到具体版本。

其实核心逻辑就是:每个digest对应唯一的镜像内容,只要你拿到了对应目标版本(比如22.04.4)的digest,之后用它拉取就不会有版本变更的问题。如果之后需要升级,再重复上面的步骤获取新版本的digest就行。

备注:内容来源于stack exchange,提问作者RiaY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 12:19:41