如何获取自建Docker镜像内gcr.io/distroless/java层的SHA值
具体操作方法
你可以根据自己的需求选择以下任意一种方式查询:
方法1:提取你构建出的镜像中基础镜像对应层的SHA
这种方式直接从你构建好的业务镜像里拿实际使用的基础层哈希,和你构建时的环境完全一致:
- 先执行历史层查询命令,输出不截断的完整信息:
docker history <你的业务镜像名:标签> --no-trunc
输出结果中创建时间最早的第一条记录,对应的IMAGE列内容就是gcr.io/distroless/java基础镜像对应层的SHA值。 - 如果你安装了jq工具,可以用命令直接过滤提取,不需要手动查找:
docker inspect <你的业务镜像名:标签> | jq -r '.[0].RootFS.Layers[0]'
因为你的Dockerfile只有一个FROM指令,返回结果的第一层就是基础镜像的根层SHA。
方法2:查询gcr.io/distroless/java基础镜像本身的全局Digest
如果你需要的是该基础镜像的官方唯一标识哈希,用以下操作:
- 本地还留存该基础镜像的情况下直接查:
docker images --digests | grep "gcr.io/distroless/java"
输出结果里的DIGEST列就是对应版本基础镜像的SHA256值。 - 本地已经清理了基础镜像的话,可以直接远程查询镜像manifest获取:
docker manifest inspect gcr.io/distroless/java | jq -r '.config.digest'
注意:方法1拿到的是基础镜像单一层的哈希,方法2拿到的是整个基础镜像的配置哈希,如果需要做匹配可以单独查询基础镜像的层信息做比对。
内容的提问来源于stack exchange,提问作者TailNinja
相关产品推荐
相关产品推荐

