命令是干什么的
docker manifest inspect 直接查询注册表中的镜像清单,列出多架构镜像包含的各平台子摘要,以及操作系统、架构与变体信息。它是确认某个标签是否支持目标架构(如 amd64、arm64)最直接的方式,不需要先把镜像拉到本地,因此发布前核对与部署前评估都很方便。
基本信息
| 用途 | 查看注册表中的镜像清单与平台列表 |
|---|---|
| 语法 | docker manifest inspect [-v] 镜像:标签 |
| 典型输出 | manifests 数组中的 platform 与 digest 字段 |
| 网络要求 | 需要能访问注册表,私有仓库需先登录 |
| 适用场景 | 多架构镜像发布与架构核对 |
典型使用场景
- 发布前确认多架构镜像确实包含目标平台
- 排查本机能跑、目标机器拉不动的问题
- arm64 设备上确认镜像是否存在对应平台变体
- 核对清单摘要与单平台摘要的对应关系
- 私有仓库镜像发布后的完整性核查
查看清单
查看清单
docker manifest inspect nginx:1.27 # 查看清单结构
docker manifest inspect -v nginx:1.27 | jq -r '.manifests[].platform | [.os,.architecture,.variant] | @tsv' # 只列平台
docker buildx imagetools inspect nginx:1.27 # Buildx 下的等价查询
docker manifest inspect registry.internal:5000/team/app:1.4.2 | head -20 # 私有仓库需先登录字段逐项读法
| 字段 | 含义 | 读取要点 |
|---|---|---|
| schemaVersion | 清单格式版本 | 2 常见于 Docker 与 OCI 清单 |
| mediaType | 清单类型 | 区分清单与清单列表 |
| manifests[].platform | 平台信息 | 包含 os、architecture、variant |
| manifests[].digest | 各平台子摘要 | 按摘要可固定到具体平台镜像 |
该命令直接查询注册表,本地镜像不参与结果:需要网络可达,并且对私有仓库要有访问权限。
不同 Docker 版本对清单命令的实验特性要求不一致,提示需要开启时按命令给出的说明处理,再用镜像工具核对结果。
核对清单的常见问题
- 确认目标平台确实在清单列表里,而不是只有构建机本身的架构
- 确认引用层级:部署用清单摘要还是某个平台摘要,要与预期一致
- 私有仓库先登录,否则拿到的是认证失败而不是清单内容
- 发布后用镜像检查工具复核各平台摘要,确认推送完整