0

0

Docker镜像元数据管理与Manifest清单查看

舞姬之光

舞姬之光

发布时间:2026-03-15 09:30:12

|

194人浏览过

|

来源于php中文网

原创

可靠获取Docker镜像真实digest和架构信息需查registry或用buildx:docker buildx imagetools inspect nginx:alpine自动展开manifest list并显示各架构子项;docker inspect --format='{{index .RepoDigests 0}}'仅当以digest拉取过才有效;registry返回的manifest digest(非本地image ID)才是权威标识。

docker镜像元数据管理与manifest清单查看

怎么看一个 Docker 镜像的真实 digest 和架构信息?

镜像 docker pull nginx:alpine 看似简单,但实际拉下来的可能是多架构 manifest 中的某一个变体。直接 docker images 只显示 tag 和 size,不反映底层 digest 或平台信息。

  • docker inspect --format='{{.RepoDigests}}' nginx:alpine 查不到 digest?说明该镜像本地没被以 digest 方式拉取过(tag 拉取不会自动写入 RepoDigests)
  • 真正可靠的方式是查 registry:先 docker pull --platform linux/amd64 nginx:alpine,再运行 docker inspect --format='{{index .RepoDigests 0}}' nginx:alpine
  • 或者跳过本地,直接用 curl -H "Accept: application/vnd.docker.distribution.manifest.v2+json" https://registry-1.docker.io/v2/library/nginx/manifests/alpine(需先获取 token)——但注意:这个请求返回的是 manifest list(v2 schema 2),不是单个镜像 blob

Manifest list 和 image manifest 到底怎么区分?

当你看到 {"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.list.v2+json"},这就是 manifest list;而 "mediaType":"application/vnd.docker.container.image.v1+json" 才是具体某个架构下的 image manifest。

  • manifest list 是“目录”,里面含多个 manifests 数组项,每项带 platform.osplatform.architecturedigest
  • image manifest 是“文件详情”,包含 layersconfig digest、schemaVersion 等,才是最终构建容器的基础
  • docker buildx imagetools inspect nginx:alpine 会自动递归展开 manifest list 并展示所有子项,比手查 curl 清晰得多

为什么 docker push 后 registry 返回的 digest 和本地 docker images -q 不一致?

因为 docker images -q 输出的是本地 image ID(即 config blob 的 sha256),而 registry 返回的 digest 是 manifest 的 digest(schema 2 的完整 JSON 内容哈希)。

Giiso写作机器人
Giiso写作机器人

Giiso写作机器人,让写作更简单

下载
  • 两者算法不同:image ID 是 config 文件的 digest;manifest digest 是整个 manifest JSON 字符串(含换行缩进)的 sha256
  • 哪怕 config 和 layers 完全一样,只要 manifest 里 mediaType 字段值或字段顺序稍有差异,digest 就不同
  • 多平台镜像 push 后,registry 返回的 digest 总是 manifest list 的 digest,不是任一子镜像的 digest —— 这点常被误认为“push 失败”或“覆盖出错”

如何安全地复用已有 layer,又不污染 manifest 结构?

docker build --cache-from 或 BuildKit 的 cache-to 能复用 layer,但不会改变原始 manifest;真要改 manifest(比如合并多平台、删掉不用的 arch),必须用工具重写。

  • docker buildx imagetools create 支持拼装多个 digest 成新 manifest list,但要求每个输入都是已推送到 registry 的完整镜像(不能是本地未 push 的 image ID)
  • 不要用 docker save | docker load 来中转 multi-arch 镜像:它只保存当前平台匹配的那个子镜像,manifest list 信息彻底丢失
  • CI 中若需固定 digest,务必在 push 后立刻记录 registry 返回的 manifest digest,而不是依赖本地 docker imagesdocker inspect

manifest 的 digest 不是“镜像指纹”的终点,而是起点——它指向的 config 和 layers 才决定行为一致性。很多人卡在 manifest list 层就停了,其实关键逻辑在下一层的 image manifest 和 config.json 里。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

248

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

522

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

610

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

245

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

716

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3619

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

56

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

74

2026.01.13

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

49

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号