镜像元数据查看是什么
读取镜像的完整结构与配置:架构与操作系统、默认环境变量、入口与默认命令、暴露端口、层摘要与仓库摘要。核对「这个镜像到底怎么启动、跑在什么平台、内容与发布记录是否一致」时,它给出的是权威答案。
基本信息
| 语法 | docker image inspect 镜像 [选项] |
|---|---|
| 常用选项 | 模板取值,脚本里只抽取关心的字段 |
| 关键字段 | 架构与操作系统、配置段、层摘要、仓库摘要、体积 |
| 输出结构 | 数组形式,单个镜像为一个元素 |
| 适用平台 | 所有容器引擎环境,字段随版本略有差异 |
典型使用场景
- 核对启动配置:确认镜像固定的入口与默认参数,避免运行时行为与预期不符
- 确认平台匹配:检查架构与操作系统,解释部署时的格式错误
- 校验发布一致性:对比仓库摘要,确认本地镜像与远端是同一份
- 检查默认环境:确认时区、编码与运行模式等默认值是否符合要求
- 排查层结构:看层摘要数量与体积,判断镜像是否被不必要内容撑大
常用示例
常用示例
docker image inspect app/web:1.0 # 完整输出
docker image inspect app/web:1.0 --format '{{.Architecture}}/{{.Os}} 体积={{.Size}}'
docker image inspect app/web:1.0 --format '{{json .Config.Env}}' # 环境变量
docker image inspect app/web:1.0 --format '{{.Config.Entrypoint}} {{.Config.Cmd}}' # 启动配置
docker image inspect app/web:1.0 --format '{{.RepoDigests}}' # 仓库摘要关键字段读法
| 字段 | 含义 | 排查用途 |
|---|---|---|
| 架构与操作系统 | 镜像面向的运行平台 | 与部署机器不匹配时启动报格式错误 |
| 配置段的环境变量 | 镜像内声明的默认环境 | 解释应用读到的默认配置从哪里来 |
| 入口与默认命令 | 启动时执行的程序与参数 | 参数化部署与覆盖入口的前提 |
| 暴露端口声明 | 文档性质的端口说明 | 不代表运行时一定映射,别当成访问配置 |
| 层摘要 | 各层的唯一标识 | 判断镜像层数与结构是否合理 |
| 仓库摘要 | 来自远端的不可变引用 | 本地构建的镜像通常为空,需推送或拉取后才出现 |
与运行状态查看的分工
- 镜像元数据回答「应该怎么跑」,运行时状态回答「实际怎么跑的」
- 排查启动问题时两者都要看:先确认镜像配置,再确认运行时是否被覆盖
- 对比镜像与容器的环境变量,能快速发现运行时注入是否生效
- 镜像配置里的端口声明只是说明,实际映射要在运行时看
- 发布核对时以仓库摘要为准,标签会被覆盖而摘要不会
本地直接构建的镜像通常没有仓库摘要,因为摘要由仓库在接收内容时计算。要在部署中按摘要固定版本,先推送到仓库或从仓库拉取一次。
镜像配置里可能带内部地址与凭据,分享输出前先过滤。检查环境变量字段时尤其要留意。