Container Image(容器镜像)
3 秒看懂
容器镜像是一个不可变(immutable)、分层构建的只读文件包,内含运行一个应用所需的全部内容——代码、运行时、系统库、环境变量和配置文件。你可以把它理解为容器的”安装光盘 ISO”:镜像是模板,容器是基于镜像运行起来的实例。它是整个云原生(Cloud Native)技术栈的基石单元。
3 分钟产业解释
为什么重要?
在容器镜像出现之前,软件交付的最大痛点是 “我的机器上能跑,你的不行”——开发环境、测试环境、生产环境之间的依赖差异导致大量部署故障。容器镜像把应用及其所有运行时依赖打包成一个标准化的、可版本化的制品(artifact),从根本上解决了环境一致性问题。
产业角色
开发者编写代码
→ Dockerfile 描述构建步骤
→ 构建工具(Docker/BuildKit/Buildah)生成镜像
→ 推送至镜像仓库(Registry)
→ 编排平台(Kubernetes)从仓库拉取镜像
→ 容器运行时(containerd/CRI-O)基于镜像创建容器实例
这个链条中,镜像是连接”构建”与”运行”的核心枢纽。它是 CI/CD 流水线的交付产物,也是 Kubernetes 调度的最小部署单元(Pod 中的每个容器都引用一个镜像)。
市场规模感知
镜像相关的生态形成了一个庞大的产业:
- 公共镜像仓库:Docker Hub 拥有超过 数百万个公开镜像仓库(repository),是全球最大的公共镜像分发平台 [Docker 官方公开数据]。
- 企业级镜像仓库:AWS ECR、Google Artifact Registry、Azure ACR、阿里云 ACR、Harbor(CNCF 毕业项目)等构成了企业私有镜像管理基础设施。
- 镜像安全扫描:Trivy(Aqua Security)、Snyk Container、Prisma Cloud(Palo Alto)、Anchore 等工具围绕镜像构建了安全合规产业链,市场规模估算在数十亿美元量级 [行业估算,口径不一]。
15 分钟专家深入
核心技术架构
容器镜像的技术规范由 OCI(Open Container Initiative)镜像规范 定义 [OCI Image Specification]。一个完整的镜像由以下三部分组成:
┌─────────────────────────────────────────────┐
│ OCI Image Layout │
│ │
│ ┌─────────────────┐ │
│ │ Manifest │ ← 描述镜像的层列表、 │
│ │ (JSON) │ 配置摘要、平台信息 │
│ └────────┬────────┘ │
│ │ 引用 │
│ ┌────────▼────────┐ ┌──────────────────┐ │
│ │ Image Config │ │ Layer 0 │ │
│ │ (JSON) │ │ (tar+gzip/zstd)│ │
│ │ - Entrypoint │ │ Layer 1 │ │
│ │ - Env │ │ (tar+gzip/zstd)│ │
│ │ - Cmd │ │ ... │ │
│ │ - ExposedPorts │ │ Layer N │ │
│ │ - Architecture │ │ (tar+gzip/zstd)│ │
│ └─────────────────┘ └──────────────────┘ │
│ │
│ 所有内容通过 SHA-256 摘要进行内容寻址 │
└─────────────────────────────────────────────┘
分层(Layering)机制
这是镜像最核心的设计哲学:
- 每一层是一个 tar 归档文件,经压缩(传统 gzip,新兴 zstd)后以内容哈希(SHA-256 digest)标识。
- 层之间是**覆盖叠加(overlay)**关系:后层的文件可以覆盖前层的同路径文件。
- **联合文件系统(Union Filesystem)**如 OverlayFS、FUSE-OverlayFS 在运行时将多层合并为一个统一视图。
- 层的共享复用是关键优势:如果两个镜像共享相同的基底层(如
ubuntu:22.04),该层只需存储和传输一次。
# 查看镜像层信息(示例)
$ docker inspect nginx:latest --format='{{json .RootFS.Layers}}' | jq .
# 输出为 SHA-256 摘要列表,每一行对应一个层
# sha256:abc...(基础层)
# sha256:def...(配置层)
# sha256:ghi...(应用层)
Manifest 与 Image Config
- Manifest:JSON 格式,声明镜像由哪些层组成、镜像配置的 digest、以及媒体类型。支持 Manifest List(或 OCI Index)以实现多架构镜像(amd64/arm64/s390x 等)。
- Image Config(也称
config.json):声明容器启动命令(Entrypoint/Cmd)、环境变量(Env)、暴露端口(ExposedPorts)、工作目录(WorkingDir)、架构(Architecture/OS)、构建历史(History)等元数据。
内容寻址(Content-Addressable)
所有 blob(层和配置)通过 SHA-256 哈希摘要 唯一标识。这意味着:
- 相同内容永远产生相同的 digest → 可验证完整性
- 不同仓库间可以去重 → 存储和带宽高效
- 镜像引用的 digest 不可篡改 → 供应链安全基础
技术原理(最深)
1. 完整的镜像 Manifest 格式
OCI Image Manifest v2 / Docker Distribution Manifest v2 Schema 2 的关键字段:
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"config": {
"mediaType": "application/vnd.oci.image.config.v1+json",
"digest": "sha256:config_hash_here",
"size": 7023
},
"layers": [
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:layer0_hash",
"size": 32654
},
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:layer1_hash",
"size": 16724
}
],
"annotations": {
"org.opencontainers.image.created": "2024-01-15T10:00:00Z"
}
}
2. Copy-on-Write (CoW) 与运行时行为
容器启动时,并不复制镜像:
镜像层(只读)
Layer N ──┐
Layer N-1 ──┤
... ├── OverlayFS mount ──→ 统一视图(merged)
Layer 1 ──┤
Layer 0 ──┘
│
容器可写层 ──┘ (thin writable layer, 通常 tmpfs/overlay)
- 容器运行时仅创建一个薄可写层。
- 当容器进程修改已有文件时,通过 CoW 将该文件从只读层复制到可写层再修改。
- 容器删除后,可写层随之销毁,镜像层保持不变。
- 这就是为什么容器启动极快(毫秒到秒级)——无需解压整个镜像,只需挂载层。
3. 镜像构建缓存机制
Dockerfile 指令逐行生成层,构建缓存遵循严格顺序匹配原则:
FROM ubuntu:22.04 # ← Layer 0: 基础层
RUN apt-get update # ← Layer 1: 如果这行及以上未变,使用缓存
COPY requirements.txt . # ← Layer 2: 文件内容变化则缓存失效
RUN pip install -r requirements.txt # ← Layer 3: 上层失效则此层也重建
COPY . /app # ← Layer 4: 代码变化频繁,放最后
关键优化原则:将变化频率低的操作放在前面(如安装依赖),将变化频率高的操作放在后面(如复制源代码),以最大化缓存命中率。
4. 多架构镜像(Multi-Architecture Image)
通过 Manifest List(Docker Manifest / OCI Index)实现:
OCI Index / Manifest List
├── linux/amd64 → manifest → [layers for amd64]
├── linux/arm64 → manifest → [layers for arm64]
└── linux/arm/v7 → manifest → [layers for armv7]
客户端(如 docker pull)根据本机平台架构自动选择匹配的 manifest,拉取对应的层。构建多架构镜像的工具包括 docker buildx、buildah 等。
5. 镜像分发协议
镜像仓库遵循 OCI Distribution Spec(源自 Docker Registry HTTP API V2):
客户端 Registry
│ │
│ GET /v2//manifests/ │ ← 拉取 manifest(ref 可以是 tag 或 digest)
│ ──────────────────────────────→ │
│ ← 200 + Manifest JSON │
│ │
│ 检查 manifest 中的 layer digests │
│ 已有层不重复拉取(本地缓存) │
│ │
│ GET /v2//blobs/ │ ← 逐层拉取缺失的 blob
│ ──────────────────────────────→ │
│ ← 200 + blob data │
│ │
技术演进史
| 时间 | 事件 | 意义 |
|---|---|---|
| 2000 年代 | FreeBSD Jail、Linux VServer、OpenVZ | 操作系统级虚拟化概念萌芽 |
| 2008 | LXC(Linux Containers)发布 | 第一个完整的 Linux 容器实现 |
| 2013.03 | Docker 0.1 发布(dotCloud,后更名 Docker Inc.) | 引入镜像分层构建 + Dockerfile + Docker Hub,定义了容器镜像范式 |
| 2014.06 | Google 开源 Kubernetes | 镜像成为编排调度的核心制品 |
| 2015.06 | OCI(Open Container Initiative)成立 | 由 Docker、Google、Red Hat、CoreOS 等发起,将镜像格式和运行时规范标准化 |
| 2015-2017 | OCI Image Spec 1.0 发布 | 镜像格式标准化,打破厂商锁定 |
| 2017 | CNCF 接管 containerd | 标准化容器运行时,OCI 镜像成为”一等公民” |
| 2017-2019 | BuildKit 引入(Docker 18.09+) | 并行构建、构建缓存远程导出、更安全的构建(无特权) |
| 2019 | Harbor 加入 CNCF 成为毕业项目 | 开源企业级镜像仓库 |
| 2020 | Sigstore/Cosign 项目启动 | 镜像签名和供应链安全 |
| 2021-至今 | SBOM(软件物料清单)成为合规要求 | syft、cosign attest 等工具将 SBOM 附加到镜像 |
| 2022-2023 | zstd 压缩格式逐步支持 | 更快的镜像解压速度(OCI Image Spec 1.1 / distribution-spec 1.1) |
| 2023-2024 | Nixery、Distroless、Wolfi 等最小镜像方案兴起 | 安全最小化 + 无 CVE 基础镜像 |
技术路线对比
镜像构建工具对比
| 特性 | Docker (BuildKit) | Buildah | Kaniko | Jib | Bazel (rules_oci) |
|---|---|---|---|---|---|
| 构建环境 | 需要 Docker daemon / 或 rootless | daemonless | Kubernetes Pod 内 | 纯 Java/无需容器 | 无需容器运行时 |
| 是否需要 root | rootless 模式不需要 | 不需要 | 不需要 | 不需要 | 不需要 |
| Dockerfile 支持 | 完整 | 完整 | 大部分 | 无需 Dockerfile | 无需 Dockerfile |
| 缓存机制 | 本地 + registry cache | 本地 | 层缓存 | 基础镜像层缓存 | 精细的增量构建 |
| 多架构 | docker buildx 原生 | buildah bud --arch | 间接支持 | 不适用 | 需配置 |
| CI/CD 友好度 | 高(需 DinD 或 socket 挂载) | 高 | 最高(纯 Pod) | 高(Java 生态) | 高 |
| 典型用户 | 通用 | Red Hat 生态 | Google/CI 密集 | Java 团队 | 大型 monorepo |
镜像仓库对比
| 特性 | Docker Hub | AWS ECR | Google Artifact Registry | Azure ACR | Harbor | Quay.io |
|---|---|---|---|---|---|---|
| 部署模式 | 公有 SaaS | 云托管 | 云托管 | 云托管 | 私有/自托管 | 公有 SaaS / 自托管 |
| 免费层 | 1 私有仓库(已调整政策) | 存储计费 | 存储计费 | 存储计费 | 开源免费 | 有限免费 |
| 漏洞扫描 | Docker Scout | 集成 Inspector | 集成 Container Analysis | Defender for Cloud | Trivy 集成 | Clair 集成 |
| 镜像签名 | Docker Content Trust | 支持 | 支持 | 支持 | Cosign/Notary | 支持 |
| 地理复制 | CDN | 跨区域复制 | 跨区域复制 | 跨区域复制 | 可配置 | 可配置 |
| OCI 制品支持 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
基础镜像对比
| 基础镜像 | 大小(估算) | 包管理 | CVE 面 | 适用场景 |
|---|---|---|---|---|
ubuntu:22.04 | ~77 MB | apt | 较大 | 开发/通用 |
alpine:3.19 | ~7 MB | apk | 小(musl libc 兼容性需注意) | 生产微服务 |
debian:bookworm-slim | ~75 MB | apt | 中 | 需要 glibc 的通用场景 |
distroless/static | ~2 MB | 无 | 极小 | 静态编译的 Go/Rust |
cgr.dev/chainguard/wolfi | 极小 | apk | 极低(每日重建) | 安全敏感生产环境 |
scratch | 0 MB | 无 | 无 | 完全静态二进制 |
注:大小为 x86_64 架构下压缩后估算值,实际随版本变动。
上下游
上游(镜像的”原料”)
基础操作系统镜像 应用运行时
├─ Ubuntu/Debian/Alpine/... ├─ Python / Node.js / JDK / Go
├─ Distroless/Wolfi ├─ nginx / envoy / tomcat
└─ scratch (空基础) └─ 自定义二进制
│ │
▼ ▼
┌───────────────────────────────────────┐
│ Dockerfile / Buildfile │
│ 描述"基础镜像 + 构建步骤 + 配置" │
└───────────────────┬───────────────────┘
│ 构建
▼
Container Image(镜像)
下游(镜像的”消费者”)
Container Image
│
├──→ 镜像仓库 (Registry) ──→ Kubernetes / Docker Swarm / Nomad
│ │
│ ▼
│ 容器运行时
│ (containerd / CRI-O / runc)
│ │
│ ▼
│ 容器实例 (Container)
│
├──→ CI/CD 流水线 ──→ 安全扫描 ──→ 镜像签名 ──→ 部署
│
├──→ Serverless 平台 (AWS Lambda, Google Cloud Run, Knative)
│
└──→ AI/ML 工作负载 (训练框架镜像、推理服务镜像)
在 AI 产业链中的角色
镜像在 AI 基础设施中扮演标准化环境封装的角色:
- 训练环境:PyTorch/TensorFlow 官方提供预构建镜像(含 CUDA、cuDNN 等 GPU 软件栈),避免了 GPU 驱动/库版本配置地狱。
- 推理部署:模型 + 推理引擎(TensorRT、vLLM、Triton Inference Server)封装为镜像,实现一致的推理环境。
- MLOps 流水线:每一步数据处理/训练/评估都以镜像为交付物,确保可复现性。
关键指标
技术指标
| 指标 | 说明 | 典型值/范围 |
|---|---|---|
| 镜像大小 | 压缩后传输大小 | 几 MB(alpine+静态二进制)到 数 GB(ML 框架镜像含 CUDA) |
| 层层数 | 一个镜像包含的层数 | 通常 5-20 层;ML 镜像可能更多 |
| 拉取时间 | 从 Registry 拉取完整镜像 | 与网络带宽/镜像大小相关;小镜像秒级,大镜像分钟级 |
| 构建时间 | 从 Dockerfile 构建镜像 | 无缓存:数分钟到数十分钟;有缓存:秒级增量 |
| 冷启动时间 | 首次拉取+启动容器 | 拉取时间 + 容器初始化(通常秒级) |
| 层复用率 | 同一集群中层的缓存命中比例 | 取决于镜像设计,优化后可达 80%+ [行业估算] |
| CVES/镜像 | 镜像中包含的已知漏洞数 | 未经优化的 Debian 基础镜像可能有数百个 CVE;distroless 可趋近 0 |
运营指标
| 指标 | 说明 |
|---|---|
| 镜像推拉频率 | 反映 CI/CD 活跃度 |
| 仓库存储量 | 企业级通常 TB-PB 级 |
| 镜像保活策略 | 未使用镜像的清理策略 |
| 签名覆盖率 | 生产镜像的签名比例 |
供需与市场数据
供给端
- 公共镜像仓库:Docker Hub、GitHub Container Registry(ghcr.io)、各大云厂商的公共镜像仓库提供数十万个预构建镜像。
- 企业级私有仓库:根据 Snyk 2023 年报告,超过 85% 的企业使用容器镜像作为主要的软件交付格式 [Snyk,估算口径不一]。
- 镜像安全市场:Trivy、Grype(Anchore)、Docker Scout、Snyk Container 等开源/商业工具形成竞争格局。
需求端
- Kubernetes 集群规模:CNCF 年度调查(2023)显示 超过 84% 的受访组织在生产环境使用容器 [CNCF Annual Survey 2023]。
- 镜像体积持续增长:ML/AI 工作负载推动大镜像需求,含 CUDA 基础层的 PyTorch 镜像压缩后可达 数 GB。
- 供应链安全合规:美国行政令 14028(EO 14028, 2021)要求 SBOM,推动镜像签名和扫描需求激增。
关键市场数据点
| 数据点 | 数值 | 来源/口径 |
|---|---|---|
| Docker Hub 镜像拉取量 | 每月数十亿次 | Docker Inc. 公开宣传数据 |
| 企业容器采用率 | 84%+ | CNCF Annual Survey 2023 |
| 使用 Kubernetes 的组织比例 | 66%+ | CNCF Annual Survey 2023 |
| 容器安全市场预估规模 | 数十亿美元(2024) | 多家行业报告估算,口径不一 |
| 典型企业镜像仓库规模 | TB 级 | 供应链估算,因企业规模差异极大 |
代表公司与资本映射
镜像基础设施公司
| 公司/项目 | 角色 | 产品/技术 | 资本状态 |
|---|---|---|---|
| Docker Inc. | 容器镜像概念创造者 | Docker Desktop、Docker Hub、Docker Scout | 私有(已转型盈利,非上市) |
| CNCF / OCI | 标准制定 | OCI Image Spec、Distribution Spec | 行业联盟 |
| VMware (Broadcom) | 企业容器平台 | Tanzu、Harbor(开源但 VMware 有商业化包装) | Broadcom 2023 年收购 VMware |
| Mirantis | Docker Enterprise 继承者 | Mirantis Container Runtime、Lens | 私有 |
| Red Hat (IBM) | 企业 Linux + 容器 | Podman、Buildah、Skopeo、Quay、OpenShift | IBM 2019 年以 ~$340 亿收购 Red Hat |
镜像安全公司
| 公司 | 产品 | 资本状态 |
|---|---|---|
| Aqua Security | Trivy(开源)、Aqua Platform | 私有,融资总额约 $2.65 亿 [公开报道估算] |
| Snyk | Snyk Container | 私有,曾估值 $74 亿(2022 高峰,此后市场调整) |
| Sysdig | Sysdig Secure | 私有,2022 年估值约 $25 亿 |
| Chainguard | Chainguard Images(安全基础镜像) | 私有,2022 年融资约 $5000 万 [公开报道] |
| Stacklok (Sigstore) | Minder、Sigstore 生态 | 私有 |
云厂商(镜像仓库作为云服务的组成部分)
| 云厂商 | 镜像仓库服务 | 备注 |
|---|---|---|
| AWS | ECR (Elastic Container Registry) | 与 ECS/EKS 深度集成 |
| Google Cloud | Artifact Registry | 替代旧版 GCR,支持多种制品 |
| Azure | ACR (Azure Container Registry) | 与 AKS 集成 |
| 阿里云 | ACR (Container Registry) | 国内市场份额领先 |
| 腾讯云 | TCR (Tencent Container Registry) | — |
| 华为云 | SWR (SoftWare Repository for Container) | — |
投资逻辑
看多逻辑
- 容器是不可逆的基础设施趋势:企业数字化转型持续推动容器采用,镜像作为容器的”原子单元”,需求刚性增长。
- AI/ML 推动镜像复杂度上升:大模型训练/推理环境(CUDA、PyTorch、vLLM 等)对镜像构建、分发、安全提出了更高要求,催生增量市场。
- 供应链安全是合规刚需:EO 14028、NIST 框架等推动镜像签名、SBOM、漏洞扫描成为强制要求,安全厂商受益。
- 边缘计算扩展场景:IoT/边缘场景需要轻量化、安全的镜像分发方案(如 Wasm 容器镜像),打开新市场。
风险与挑战
- Docker Inc. 的商业化困境:Docker Desktop 付费化引发社区反弹,Docker Hub 免费层收紧。镜像构建/仓库本身已是高度标准化和低价竞争的基础设施。
- 安全扫描同质化严重:Trivy 等开源工具覆盖大量需求,纯商业镜像扫描面临开源替代压力。
- WebAssembly (Wasm) 潜在替代:Wasm 作为更轻量的沙箱运行时,其 OCI 兼容镜像格式可能部分替代传统容器镜像(目前互补多于替代)。
- 利润率受压:镜像仓库本身是高运维成本、低毛利业务,差异化有限。
值得关注的趋势
- OCI 制品(OCI Artifacts):镜像仓库正从”容器镜像的仓库”演变为”所有 OCI 制品的仓库”(Helm charts、Wasm 模块、ML 模型、签名等)。
- eStargz / Nydus / OverlayBD:按需拉取(lazy-pulling)技术可大幅降低镜像拉取时间和启动延迟,对大规模 AI 训练场景有重要价值。
- 镜像不可变基础设施的延伸:从容器镜像到 VM 镜像(如 AWS AMI)、再到无服务器函数包,“不可变镜像”范式正在扩展。
常见误读纠偏
误读 1:“镜像就是容器”
纠偏:镜像是只读模板,容器是基于镜像运行起来的实例。一个镜像可以同时运行多个容器实例,就像一个 ISO 可以安装到多台机器。类比关系:
镜像 (Image) → 类 (Class)
容器 (Container) → 实例 (Object)
镜像是不可变的;容器有可写层,可以被修改、停止、销毁。
误读 2:“镜像越大越完整、越好”
纠偏:恰恰相反。大镜像意味着:
- 更大的攻击面:包含更多不必要的包 = 更多潜在 CVE
- 更慢的分发:网络传输和存储成本上升
- 更慢的冷启动:首次拉取时间与镜像大小正相关
最佳实践是使用最小化基础镜像(如 distroless、Alpine)并利用**多阶段构建(multi-stage build)**将编译环境与运行环境分离:
# 构建阶段(仅用于编译,不进入最终镜像)
FROM golang:1.22 AS builder
WORKDIR /app
COPY . .
RUN CGO_ENABLED=0 go build -o /app/server .
# 运行阶段(最小镜像)
FROM gcr.io/distroless/static
COPY --from=builder /app/server /server
ENTRYPOINT ["/server"]
# 最终镜像仅几 MB
误读 3:“latest 标签意味着最新版本”
纠偏:latest 只是一个默认标签名,不保证内容是最新的。如果上游镜像更新了但没有重新打 latest 标签,本地的 latest 就是旧版。此外,latest 标签是可变的——同一条标签可以在不同时间指向不同 digest。生产环境应始终使用 digest(SHA-256 哈希)或明确的版本标签引用镜像:
# ❌ 不推荐(不确定拉的是哪个版本)
docker pull nginx:latest
# ✅ 推荐(精确版本)
docker pull nginx:1.25.3
# ✅ 最佳(不可变引用)
docker pull nginx@sha256:abc123...
误读 4:“Docker 镜像和 OCI 镜像是两种不同的东西”
纠偏:Docker 早期有自己的镜像格式(V1、V2 Schema 1),但自 2015 年 OCI 成立后,Docker 已将镜像格式贡献给 OCI 并采纳 OCI 标准。当前 Docker 构建的镜像就是 OCI 镜像(或与 OCI 兼容的 Docker Distribution 格式)。两者技术上高度兼容,行业已趋同于 OCI Image Spec。
学习路径
入门(1-2 天)
- 安装 Docker Desktop,运行
docker pull ubuntu、docker run -it ubuntu bash,体验基本的镜像拉取和容器运行。 - 学习 Dockerfile 基础指令(
FROM、RUN、COPY、CMD、ENTRYPOINT、EXPOSE)。 - 构建并推送一个简单 Web 应用的镜像到 Docker Hub。
进阶(1-2 周)
- 理解分层机制:用
docker history和docker inspect查看镜像层。 - 掌握多阶段构建优化镜像大小。
- 学习
docker buildx构建多架构镜像。 - 了解 OCI Image Spec 规范原文(重点看 Manifest 和 Config 格式)。
- 使用 Trivy 对镜像进行安全扫描。
专家(持续)
- 深入 OCI Distribution Spec,理解镜像分发协议。
- 学习 Sigstore/Cosign 进行镜像签名和验证。
- 使用
syft生成镜像 SBOM,使用grype基于 SBOM 进行漏洞扫描。 - 评估 Nydus/eStargz 等按需拉取方案在大规模集群中的应用。
- 了解 WebAssembly 容器镜像与 OCI Artifact 的演进。
推荐资源
- OCI 镜像规范:https://github.com/opencontainers/image-spec
- OCI 分发规范:https://github.com/opencontainers/distribution-spec
- Docker 官方文档:https://docs.docker.com/build/building/
- 《Container Security》(Liz Rice 著,O’Reilly)——容器安全的权威参考
一句话总结
容器镜像是云原生软件交付的原子单元——一个不可变的、分层的、内容寻址的只读文件包,它标准化了”应用+运行时+依赖”的封装和分发方式,是从 CI/CD 流水线到 Kubernetes 调度再到 AI 训练/推理环境的基础设施基石。
延伸阅读与来源
- OCI Image Specification — 容器镜像的技术规范
- OCI Distribution Specification — 镜像分发协议规范
- CNCF Annual Survey 2023 — 容器/Kubernetes 采用率数据
- Docker Documentation: Best practices for writing Dockerfiles
- NIST SP 800-218 (SSDF) — 安全软件开发框架(含 SBOM 要求)
- Liz Rice, Container Security (O’Reilly, 2020)
- Harbor Project (CNCF) — 开源企业级镜像仓库
- Trivy (Aqua Security) — 开源镜像漏洞扫描工具
- Sigstore / Cosign — 镜像签名和供应链安全
本文中未标注来源的具体数字均为基于公开技术规范的定性描述或行业估算,读者请以厂商最新官方数据为准。