标准答案
- 每个文件系统层通常表示一次变更,多个镜像可以共享相同层,减少分发和存储成本。
- manifest 描述配置、层和平台信息;多架构镜像索引可以根据目标平台选择具体 manifest。
- tag 是可移动的人类可读名称,digest 是内容寻址标识,生产部署更适合记录 digest。
- 镜像更新要同时确认基础镜像、平台、层内容、SBOM 或签名以及回滚引用,不能只看 tag 名称。
题目解析
镜像由多个只读 layer 和描述它们如何组合的 manifest/config 组成;digest 是内容寻址摘要,引用它可以把部署输入固定到某个内容。tag 是人类可读的可变指针,latest 可能在不同时间指向不同 digest;多架构镜像还可能先通过 manifest list 选择平台对应的子 manifest。
layer 共享可以减少拉取和存储成本,但容器的 writable layer 仍会产生 copy-on-write 开销,运行时占用也不等于镜像层大小。digest 只回答“内容是否匹配”,不能回答来源可信、没有漏洞或构建过程没有被篡改,因此还需要签名、SBOM、扫描和制品来源验证。
常见误区
- 误区:把 latest 当成固定版本。改正:发布和回滚记录平台对应的 digest,必要时直接按 digest 部署。
- 误区:只检查镜像 tag。改正:同时记录 digest、来源、签名、构建版本和扫描结果。
- 误区:认为每个容器都独占完整镜像大小。改正:区分共享只读层、容器 writable layer 和运行时数据。