研究报告 · 约 35,785 字 · 预计推送 4 部分

Docker 与容器工程:镜像、卷、网络、Compose、安全边界与 Windows 开发体验(综合报告) 未开始

目录

题记与说明

横纵综合 · 纵轴追踪区间 2013-03 — 2026-10-31,横轴时间截面 2026-10-31
对应课题:《Docker 与容器工程:镜像、卷、网络、Compose、安全边界与 Windows 开发体验》
输入材料:parts/2026-10-31-...-vertical.md(纵轴)与 parts/2026-10-31-...-horizontal.md(横轴)
本文件为最终稿:2026-11-01 按独立审读意见(8 条)逐条修订定稿;修订轮补充核验的来源与未完成项见 2.9 与参考来源 33–40。

TL;DR

容器技术十三年的主线是一次"重心下沉":2013 年 Docker 用开发者体验引爆容器,2015-2017 年把格式与运行时送进 OCI/CNCF,2022 年 dockershim 移除标志引擎战争出局——但接棒的 containerd 正是 Docker 亲手捐出的项目。今天的 Docker 是一家"开发者体验公司":护城河收缩到 Desktop 的 UX、Compose 参考实现、Docker Hub 网络效应与 Scout/DHI 安全周边四处。Windows 上所有跑 Linux 容器的主流方案都殊途同归于 WSL2/Hyper-V 虚拟机——唯一的例外是 Windows 原生容器——竞争的真实维度是 VM 管理层、文件共享层与许可层,而非容器技术本身。安全边界是唯一由架构决定、补丁追不平的维度:Docker 把加固做成 $24/月的 Business 付费功能,Podman 把 rootless 做成免费默认。250 人/$10M 许可线重塑了桌面端竞争格局。选型建议按序三步:先算许可账,再按威胁模型选安全方案,性能用自己的负载实测——服务器与 CI 和 Desktop 许可无关,K8s 节点已是 containerd 既成事实。


0. 综合方法与两轴口径统一说明

0.1 证据分级

两份章节均基于本次研究的网络工具实际抓取与检索完成,非纯模型既有知识输出。综合报告沿用三级标注:

0.2 矛盾与重复的处理记录

两章节合并时发现以下口径差异,本报告统一处理如下:

议题两轴原口径本报告采用
Docker 1.0 发布时间纵轴:DockerCon 2014-06 官宣 "production-ready",Wikipedia 记 2014-10-16以 DockerCon 2014-06 官宣为主线,脚注标注维基口径
Desktop 定价纵轴 2026-10-31 实时抓取记 "Pro $9(月付)";横轴直接抓取定价页记 Pro $9 年付/$11 月付、Team $15/$16、Business $24/$24两次抓取记录不一致:$9 若为月付,则与横轴明细表的 $11 月付矛盾,疑其一误读。本报告以横轴明细表为准(Pro 年付 $9 / 月付 $11),纵轴该单点数字存疑,不构成印证
Hub 拉取限额纵轴:2020-11 起匿名 100 次/6h、免费登录 200 次/6h,现行已改为匿名 10 次/小时、免费登录 100 次/小时;横轴定价页记 Personal 含 100 pulls/hr两说并行不矛盾:历史限额与现行限额分列,Personal 档 100 pulls/hr 与现行免费登录限额一致
WSL2 默认化的具体版本号纵轴:WSL2 GA 后逐步默认化 + Windows 10 Home 解锁,具体版本未核验保留"未核验"标注,不填具体版本号
Podman vs Docker 性能开销横轴:某 SEO 基准站的开销数字(未说明指标与负载,本报告不引用其具体数字)vs ACM HPC 实测 1.61%–5.10%,相差近一个量级保留横轴结论:单一开销数字不作为选型依据,rootless 性能税"真实存在、幅度不定",按真实负载实测
Desktop 空闲内存 ~1.2GB / vhdx 膨胀横轴:中文实测文章,原始链接为搜索引擎重定向短链保留为低置信数据,仅作方向参考
重复内容(compose-spec、WSL2 后端细节、dockershim、定价)两轴均出现叙事归纵轴,对比归横轴,交叉洞察只做合并推理,不重复事实陈述

一、纵轴:发展脉络(2013 → 2026.10)

1.1 史前史(2000–2012):原语早已存在,缺的是一个好用的包装

容器的基本构件在 Docker 之前已积累多年:FreeBSD jail(2000)、Solaris Zones(2004)、Linux 内核的 namespaces 与 cgroups(2007 年前后合入主线,⚠️ 既有知识),以及 2008 年把两者组合成"类虚拟机"隔离单位的 LXC——但配置繁琐、上手门槛高(⚠️)。Google 内部早已大规模使用容器(Borg 体系),2013 年还开源了 lmctfy(⚠️)。

这一阶段的驱动因素是数据中心资源利用率与 PaaS 兴起。问题不在内核能力,而在开发者体验:没有人把"构建-分发-运行"做成一条完整流水线。补上这一环的,是一家名不见经传的法国 PaaS 公司。

1.2 诞生与引爆(2013.3 – 2014.6):PyCon 十五分钟,dotCloud 转身

驱动因素:开发者对 "build once, run anywhere" 的渴望 + GitHub 时代开源势能;2014 年 libcontainer 成为默认执行器,摆脱对 LXC 的依赖(⚠️)。

1.3 生态战争与标准化(2014.6 – 2016.6):Kubernetes、rkt、OCI 三重变奏

Docker 的一枝独秀引来两类挑战:编排层与格式标准。

这一阶段确立了此后十年的基本格局:OCI 定格式与运行时,CNCF 定编排生态,Docker 回归引擎与开发者工具。各方对 Docker"既做实现又定标准"的警惕(rkt 冲击 → OCI 成立)与编排价值被 Kubernetes 证明,是两条主要驱动力。

1.4 平台化与 Windows 开发体验的起点(2015.8 – 2017)

桌面化: Mac/Windows 用户先靠 Boot2Docker(2014,VirtualBox 虚机,🔎 dhrpdocs)与 Docker Toolbox(2015-08-18,docker-machine + VirtualBox 全家桶,正式取代 Boot2Docker,🔎 App Developer Magazine)搭建本地环境——文件共享走 VirtualBox 共享目录,体验糟糕。2016-03 Docker for Mac/Windows beta 改用原生虚拟化层(Mac 用 xhyve/后换 HyperKit,Windows 用 Hyper-V,要求 Windows 10 Pro/Enterprise)(🔎 Hacker News、docker/for-win#151、ADTmag);2016-07-28 GA(🔎 Hacker News 讨论,搜索确认官方博客于 2016-07-28 宣布 GA,原文未逐字核验)。

Windows 原生容器:微软进场。 2016-09/10 Windows Server 2016 发布(2016-09-26 Ignite 宣布、2016-10-12 GA),首次内建容器能力,提供两种隔离模式:Windows Server Containers(进程隔离,共享内核)与 Hyper-V Containers(轻量虚机级隔离)(🔎 Wikipedia: Windows Server 2016、Redmondmag)。2017-04 微软宣布在 Server 2016 上支持 Linux 容器,后演化为 LCOW 路线(⚠️ 细节)。意义:Windows 第一次同时拥有"跑 Linux 容器的桌面发行版"与"跑 Windows 负载的原生容器"两条路径——这是本课题 Windows 维度的历史起点。

Moby 与商业化分轨: 2017-03 版本号切换为 YY.MM(17.03),产品分 CE(季度发布)与 EE(付费)(🔎 Open Source For You,搜索确认 2017-03 发布、17.03 为首个 CE/EE 版本);2017-04-18 DockerCon Austin 宣布 Moby 项目——把 Docker 拆成上游"乐高套件",官方类比"Moby 之于 Docker,如同 Electron 之于 VSCode/Atom",同期发布 LinuxKit(Desktop 的 Linux VM 即由其构建,✅ 间接核验:WSL2 后端文原文 "The Linux VM is entirely built using LinuxKit";Moby 项目本身 ✅ 修订轮核验 Wikipedia):"In 2017, Docker created the Moby project",DockerCon Austin 具体日期 ⚠️);2017-05 Docker 17.05:多阶段构建(multi-stage build)落地,单 Dockerfile 多段 FROM + COPY --from=,Go 应用镜像可从 ~800MB 缩到 ~8MB(🔎 docs.docker.com/build/building/multi-stage)。2017-10 起 Docker 宣布平台级多编排器战略;2018-01 Desktop 集成 Kubernetes(edge 通道 beta)(🔎 docker.com/blog/docker-windows-desktop-now-kubernetes、docker.com/blog/docker-mac-kubernetes),2018-07 左右随 18.06 CE GA(⚠️ 未经单独核验;K8s 集成的 beta 公告见前述 Docker 博客链接)。

1.5 收缩、分叉与"卖掉企业"(2018 – 2019):从平台公司回到工具公司

驱动因素:编排战争败退、企业版销售不及预期、资本耐心耗尽。痛苦的收缩让 Docker 找到此后最稳定的定位:开发者桌面工具 + 镜像分发枢纽。

1.6 回归开发者(2020 – 2022):compose-spec、限流、订阅制与 WSL2 成主航道

驱动因素:Hub 限流与订阅制是收入模型重建(九周年博客 ✅ 给出收缩后的规模:1000 万注册开发者、每月 3500 万次 Engine 下载、14PB 镜像存储、每月 31PB 出口流量);WSL2 是 Windows 开发体验的决定性变量——文件 I/O 提升一个量级、内存动态化、Home 版可用。

1.7 安全叙事与 AI 转向(2023 – 2026.10):BuildKit 默认、Scout、Hardened Images 与"笔记本即生产环境"

驱动因素:运行时战争定局后,Docker 的增长点转向安全供应链(Scout/DHI/zero-CVE)与 AI 工作负载(Model Runner/MCP/Sandboxes/AI Governance);Windows 体验沿"自研虚拟化层"继续深化(VMM 公测)。

1.8 六条贯穿线索的纵向复盘

  1. 镜像与构建:AUFS 起家(⚠️)→ 1.10 内容寻址存储(2016-02)→ 17.05 多阶段构建(2017-05)→ BuildKit/buildx 推广(2019 起)并于 23.0 成为默认(2023-02)→ containerd 镜像存储默认化(2024 末)→ buildx/attestation/SBOM 成为 Scout 地基(2023–2025)。主线:构建从"守护进程附属功能"独立成可插拔子系统。
  2. 网络与卷:veth+iptables 单机桥接(2013,⚠️)→ libnetwork/CNM 与 1.9 多主机 overlay(2015-11)→ Desktop 时代 vpnkit/9p/virtiofs 文件共享成为 Windows 痛点(✅ WSL2 后端文详述 9p 挂载与跨发行版 bind mount)→ Compose Watch 用应用层同步绕开文件系统困境(2023-10,✅)。主线:单机网络 2015 年基本定型;此后十年的真问题是"宿主↔VM 文件边界"。
  3. Compose:2014 初版(fig 更名,⚠️)→ v2/v3 格式迭代(2016–2017,⚠️)→ compose-spec 开放(2020-04,✅)→ V2 Go 重写并入 CLI(2022-04)→ Watch GA 转向开发内环(2023-10,✅)。主线:编排输给 Kubernetes 后,Compose 退守并深耕"本地多容器开发"这个独有生态位。
  4. 安全边界:1.10 默认 seccomp + userns-remap(2016-02)→ rootless 实验(19.03,2019-07)转正(20.10,2020-12)→ Podman 架构级 rootless 施压(2018 起)→ Scout/SBOM(2023)→ Hardened Images 与"零 CVE 默认"(2025–2026)。主线:从"容器 vs 宿主"的内核边界,外扩到"镜像供应链"边界;root 守护进程模型始终是被攻击的靶心。
  5. Windows 开发体验:Boot2Docker(2014)→ Toolbox(2015-08)→ Docker for Windows beta(2016-03,Hyper-V,仅 Pro/Enterprise)→ Server 2016 原生容器双隔离模式(2016-10)→ Desktop 集成 K8s(2018-01 beta)→ WSL2 后端预览(2019-10,✅)→ WSL2 GA(2020-05)→ 默认化 + Windows 10 Home 解锁(✅ 预告 + ⚠️ 具体版本未核验)→ containerd 存储默认(2024 末)→ Docker VMM 公测(2026-08,✅)。十三年完成"外挂 VM → 内嵌 VM → WSL2 轻量子系统 → 自研 VMM"四级跳,每次跳变都由文件 I/O 与内存开销两条硬指标驱动。
  6. 公司与项目命运:dotCloud → Docker Inc(2013)→ 十亿估值/编排野心(2015–2017)→ CE/EE 分轨 + Moby 上游化(2017)→ 卖企业业务回归开发者(2019-11)→ 订阅制止血(2021-08)→ AI 二次创业(2025–2026,✅)。最耐人寻味的注脚:Docker 没有赢得所有战争,但今天几乎所有战争都还在用它的弹药——runC 之于 OCI(2015,✅)、containerd 之于 CNCF(2017 捐赠/2019 毕业,✅)。

1.9 阶段总表

阶段时间关键版本/事件主要参与者驱动因素
史前2000–2012jail/Zones/cgroups/namespaces/LXC内核社区、Google资源隔离需求
诞生引爆2013.3–2014.6PyCon 演示(2013-03-15);更名 Docker Inc.;1.0(2014-06 DockerCon 官宣)Hykes、dotCloud 团队开发者体验、开源势能
生态战争2014.6–2016.6K8s(2014-06)、rkt/appc(2014-12)、OCI(2015-06-22)、1.9 网络(2015-11)、1.10 安全(2016-02)、1.12 swarm mode(2016-06)Google、CoreOS、Docker、Linux 基金会标准主导权、编排价值
平台化+Windows 起点2015.8–2017Toolbox(2015-08)、Docker for Mac/Win(2016-03 beta、2016-07 GA)、Server 2016 容器(2016-10)、Moby/17.03 CE-EE/17.05 多阶段(2017)Docker、微软、Moby 社区商业化、桌面开发者市场
收缩分叉2018–2019Podman(2018)、containerd 毕业(2019-02)、19.03 rootless/GPU(2019-07)、WSL2 预览(2019-10)、Mirantis 收购企业业务(2019-11)Docker、Mirantis、CNCF、Red Hat编排败退、资本压力
回归开发者2020–2022compose-spec(2020-04)、WSL2 GA(2020-05)、Hub 限流(2020-11)、20.10(2020-12)、订阅制(2021-08)、Compose V2(2022-04)、dockershim 移除(2022-05)Docker、微软、CNCF收入重建、WSL2 红利
安全+AI2023–2026.1023.0 BuildKit 默认(2023-02)、Scout(2023)、Compose Watch GA(2023-10)、containerd 存储默认(2024 末)、Engine 28(2025-02)、Model Runner/MCP(2025-04)、DHI(2025-05 → 2025-12 开放)、VMM 公测(2026-08)、AI Governance(2026)Docker、微软、AI 生态供应链安全、agentic AI

二、横轴:横向对比(2026-10-31 截面)

2.1 对比对象怎么选:三层坐标系

"容器工程"是一条工具链,Docker 在其中同时扮演多个角色,因此横轴不能只找"竞品",而按层对标:

层对标 Docker 的哪部分入选对象入选理由
L1 引擎层Docker Engine / Moby 守护进程Podman、containerd + nerdctl、Buildah/Skopeo、runc/LXC(对照)OCI 标准化之后与 Docker 引擎直接同质竞争的部分
L2 桌面发行层Docker Desktop(重点:Windows 体验)Podman Desktop、Rancher Desktop、WSL2 原生 Docker Engine(免 Desktop 方案)、Colima/OrbStack(macOS 参照)开发者真正安装的东西
L3 上层平台(非同类替代,作边界对照)Kubernetes/K3s、OpenShift、PaaS、传统虚拟机常被误当"Docker 替代品",实际位于不同抽象层

L2 是重点:Windows 上不存在原生 Linux 容器内核路径,所有主流方案都是在 WSL2/Hyper-V 轻量虚拟机里跑 Linux 容器,差别只在 VM 的管理方式、集成度和许可——这正是"Windows 开发体验"维度的实质。

2.2 总对比表(2026-10 截面)

维度Docker Engine + DesktopPodman + Podman DesktopRancher Desktopcontainerd + nerdctlWSL2 原生 Docker(免 Desktop)Windows 原生容器
架构客户端-守护进程(dockerd,通常 root)无守护进程,fork-exec,天然 rootlessWSL2 VM 内可切换 dockerd(moby)/containerd嵌入式运行时,需外挂 nerdctl与 Docker Engine 相同,跑在 WSL2 发行版内Windows 内核进程隔离或 Hyper-V 隔离
镜像与构建BuildKit(✅ 行业事实标准,⚠️ 细节)Buildah / podman build(兼容 Dockerfile)🔎复用所选 runtime 的构建链 🔎BuildKit 可外挂;nerdctl build 🔎BuildKit ⚠️Docker Desktop 的 Windows 容器模式 / docker build ⚠️
Composedocker compose(参考实现,compose-spec)⚠️podman compose 委托外部 provider,有兼容摩擦 🔎dockerd 模式完整支持;containerd 模式走 nerdctl compose 🔎nerdctl compose(社区称已覆盖常用命令)🔎完整支持 ⚠️有限支持 ⚠️
安全边界root 守护进程 + docker.sock 是经典攻击面;ECI/Hardened Desktop 为付费加固 ✅rootless + daemonless 是架构级默认;systemd Quadlet 集成 ⚠️🔎继承所选 runtime;容器在 VM 内部 ✅🔎常与 rootless containerd 组合 ⚠️同 Docker Engine ⚠️进程隔离粒度弱于 Linux(PID namespace 等特性不全)✅🔎
成本Engine 免费;Desktop 个人免费,Pro $9 / Team $15 / Business $24 每人每月(年付)✅全免费开源 ✅全免费开源 ✅🔎全免费开源 ✅Engine 免费开源 ✅随 Windows 许可(✅ 随系统版本授权;⚠️ 各版本门槛与费用细节未核验)
Windows 体验开箱即用度最高;空闲内存实测 ~1.2GB、vhdx 易膨胀(🔎 低置信)v1.30.5(2026-10-13 ✅ GitHub API),podman machine 走 WSL2(默认)或 Hyper-V 🔎需预装 WSL2,仅支持 Linux 容器 ✅🔎无 Windows GUI,需手工进 WSL2 配置 ⚠️免费但需手工配置端口转发/自启 🔎⚠️仅适合 Windows 专有负载(.NET Framework/IIS)✅🔎
KubernetesDesktop 内置 ✅经 Kind/Podman machine 间接 ⚠️内置 K3s,可切版本 ✅🔎它就是 K8s 的默认运行时 ✅🔎Kind/minikube 可用 ⚠️AKS 等托管场景 ⚠️
成熟度/生态文档、教程、CI 默认假设、扩展市场最全 ✅~32k stars,RHEL 体系背书 ✅🔎跨平台,接近 Docker Desktop UX ✅🔎CNCF 毕业项目,~21k stars ✅🔎社区惯用方案,无官方 GUI ⚠️微软维护,功能滞后于 Linux 容器 ✅🔎

数据来源:定价 ✅ 来自 docker.com/pricing(本次直接抓取);stars 与替代品定位 ✅ 来自 Spacelift 2026-06 文章(本次直接抓取);Podman Desktop 版本 ✅ 来自 GitHub API(本次验证)。

2.3 能力维度:镜像、构建、卷、网络、Compose

镜像与构建。 Docker 的 BuildKit 至今是构建侧事实标准,Dockerfile 语法、docker buildx 多平台构建、缓存机制是绝大多数 CI 与教程的默认假设(⚠️)。Podman 阵营以 Buildah 承担构建:Spacelift 将其描述为"仅负责 OCI 镜像构建的轻量工具,无法启动容器,只替代 docker build"(✅ Spacelift)。Buildah 既支持 Dockerfile 也支持命令式逐层构建,适合把构建嵌入自研工具链(CI Runner 内嵌);但对普通开发者,BuildKit 的缓存体验与生态文档仍占优。containerd + nerdctl 路线可外挂 BuildKit,Spacelift 评价其"对技术栈控制力更强、能更早用上新特性,但安装配置比 Docker 复杂"(✅ 同上)。

卷与网络。 各 Linux 侧方案在 rootful 模式下网络模型基本同质(bridge/overlay 均走 CNI 或 CNM 语义,⚠️)。真正的分野在 rootless 网络:Podman rootless 默认走 slirp4netns/pasta 用户态网络,端口转发与性能历来是痛点,社区以 bypass4netns 缓解——2025 年的一项基准甚至显示加 bypass4netns 的 rootless nerdctl 吞吐(19.7 Gbps)反超 rootful(17.9 Gbps)(⚠️ 搜索所得但未留存链接,低置信,仅作方向参考)。卷方面,Windows 上跑 Linux 容器的各方案(Docker Desktop、Podman machine、Rancher Desktop、WSL2 原生 Engine)的数据共享最终都落在 WSL2 的文件共享机制(9p/virtiofs 语义)上,跨文件系统 bind mount 的性能劣化是共同问题(⚠️;Windows 侧已知问题另见 2.7)。

卷:bind mount 之外的一半(named volume、卷驱动与备份)。 前文(含 1.8 线索 2 与本节上段)的"卷"基本只讨论了 bind mount 文件共享,这里补全另一半。容器持久化数据的标准做法是 named volume:由 Docker 在其管理的存储区创建维护,Linux 侧挂载点为 /var/lib/docker/volumes/<name>/_data(✅ 修订轮核验:docs.docker.com/engine/storage/volumes,"When you create a volume, it's stored within a directory on the Docker host")。Windows 的 Desktop 类方案里,引擎整体跑在 docker-desktop WSL 发行版/VM 内(✅ 修订轮核验:docs.docker.com/desktop/features/wsl,"Docker Desktop runs inside its own docker-desktop WSL distribution";数据盘默认存于 %LOCALAPPDATA%\Docker\wsl),named volume 因此落在 VM 内部 Linux 文件系统——按机制推断,它不经过 /mnt/c ↔ VM 的 9p/virtiofs 跨文件系统共享路径,这也是"数据库类负载把数据放进 named volume、而不是把 Windows 目录 bind 挂进容器"成为常规建议的原因(⚠️ 机制推断,本次未实测)。卷驱动(volume driver)可把卷外接到 NFS/CIFS 或 rclone 等网络存储(✅ 同上 docs 卷页),但在 Windows 桌面开发场景极少使用。卷备份用一次性容器打包即可:docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata(✅ 同上 docs 卷页原文命令)。范围声明:本课题的"卷"从 Windows 文件共享与性能角度展开;named volume 的完整生命周期管理、卷驱动生态与备份自动化属通用 Docker 存储知识,不作横向展开。

Compose。 docker compose 是 compose-spec 的参考实现——这是 Docker 在工具链里最后的"标准制定权"(⚠️)。Podman 官方策略是 podman compose 委托外部 provider(podman-compose 或直接调用 docker-compose 二进制),社区承认 compose 兼容存在摩擦(⚠️ 社区共识性描述,未核验具体帖子:"看到 docker-compose.yaml 仍会有兼容性问题")。2026 年中文实战文章的结论更直白:Windows 上要"无感"运行 docker-compose.yml,需要 WSL2 + Podman + Compose 插件 + 镜像加速整套协同配置(⚠️ 未附链接)。nerdctl 侧,2025-12 的 feature request 称其已支持全部 Docker CLI 命令含 compose(⚠️ 未核验原文)——即便如此,"兼容"与"参考实现"之间仍有差距。

2.4 安全边界:结构性差异最大的维度

这是横轴上无法靠迭代追平的维度,差异来自架构而非功能:

2.5 成本与许可:一条 250 人/$10M 的分界线

本次直接抓取的官方定价页(✅ docker.com/pricing):

档位年付价/人/月月付价/人/月关键差异
Personal$0$01 用户、100 pulls/hr、1 个私有 Hub 仓库
Pro$9$11Testcontainers Cloud 100 分钟、无限拉取
Team$15$16100 用户、RBAC、审计日志、2 个工作日支持
Business$24$24SSO、SCIM、ECI、Hardened Desktop、镜像/仓库访问管理、MSI 安装器、VDI 支持

免费使用的法律边界来自 Desktop 许可协议:仅少于 250 名员工且年收入低于 $1000 万的企业、个人、教育、开源可免费用 Docker Desktop(🔎 Docker Desktop License Agreement)。按官方牌价粗算,一家 250 人的公司若全员配 Business 约 $72,000/年——这正是免费竞品最稳定的需求来源。注意 Docker Engine 本身(Moby)始终开源免费,付费对象只是 Desktop 这层"发行版";因此"WSL2 里直接装原生 Docker Engine"成为中文社区经久不衰的省钱路线(🔎 CSDN 实践),代价是失去 GUI、托盘管理与自动端口转发等集成。

对比侧:Podman Desktop、Rancher Desktop、containerd/nerdctl 均为 Apache-2.0 类开源许可、零许可费(✅ Spacelift;Rancher Desktop 安装页 🔎);OrbStack(macOS)个人免费、商业收费,仅作参照(✅ Spacelift)。

2.6 生态与成熟度

2.7 Windows 开发体验专项(课题重心)

Windows 上跑 Linux 容器的格局可以概括为一句话:大家都落在同一个 WSL2(或 Hyper-V)虚拟机里,只是包装和收费不同——唯一的例外是走 Windows 内核的 Windows 原生容器(下表末行,Docker Desktop 也可切换到该模式)。

方案Windows 上的实现路径特色与代价
Docker DesktopLinux 容器(默认):Hyper-V 或 WSL2 后端的轻量 Linux VM;Windows 容器模式:宿主内核进程隔离或 Hyper-V 隔离,经托盘菜单切换集成度最高(托盘、GUI、端口转发、卷共享全自动);Linux/Windows 容器模式可经托盘菜单切换("toggle which daemon the Docker CLI talks to"),但同一时刻 CLI 只连一个 daemon(Linux 容器为默认),且 Windows 容器模式要求 Windows 10/11 Pro/Enterprise(Home/Education 只能跑 Linux 容器)、仅 all-users 安装模式支持(✅ 修订轮核验:docs.docker.com/desktop/setup/install/windows-install);空闲内存实测约 1.2GB,vhdx 虚拟磁盘只增不减、易吃满 C 盘(🔎 中文实测,链接,低置信);企业需付费
Podman Desktoppodman machine:默认 WSL2 provider,可切 Hyper-Vv1.30.5(✅);实测组合空闲内存低于 Docker Desktop(🔎 同上,低置信);compose/镜像加速需自行配置(⚠️)
Rancher Desktop必须预装 WSL2(推荐 8GB RAM/4 CPU),VM 内跑 containerd 或 dockerd + K3s免费内置 K8s;不支持 Windows 容器,社区 issue 明确实现需 RKE2 而非 k3s、基本不会做(🔎 安装文档、rancher-desktop issue #255)
WSL2 原生 Engine在 WSL2 发行版内直接 apt 装 docker engine零许可成本、内存开销最小;无 GUI,端口转发与自启需手工(🔎 CSDN ⚠️)
Windows 原生容器进程隔离(共享 Windows 内核)或 Hyper-V 隔离(utility VM)唯一能容器化 .NET Framework/IIS 的路径;但功能滞后:微软官方仓库 2026-09 的 issue 仍在跟踪"进程隔离容器在特权隔离粒度、PID namespace 支持上落后于 Linux 容器"(✅🔎 microsoft/Windows-Containers#653);Hyper-V 隔离 + bind mount 存在文件被 VM 锁定的已知问题(🔎 moby#42803);构建/运行通常推荐进程隔离,因 Hyper-V 隔离更慢(🔎 Adam Rehn primer)

关键事实:Windows 原生容器不能在 Linux 上运行,反之 Linux 镜像也不能直接跑在 Windows 内核上(✅ Spacelift Hyper-V 条目)。所以 Windows 开发者的日常主线仍是"WSL2 里的 Linux 容器",Windows 容器只服务于 Windows 专有负载。这个结构性事实决定了:比较各方案在 Windows 上的体验,本质上是在比较它们的"VM 管理层 + 文件共享层 + 许可层",而不是容器技术本身。

2.8 适用场景矩阵

场景推荐方案理由
个人学习/教学Docker Desktop(Personal 免费档)个人用途免费;生态默认假设、教程最多、开箱即用
预算敏感的个人/HomelabWSL2 原生 Engine 或 Podman Desktop零许可费、内存占用更低(实测口径)
中小企业(<250 人且 <$10M)先按许可协议(2.5 节)用 Docker Desktop 免费档(该规模本可免费);需要 RBAC/审计日志/更多付费席位时再升 Team($15),或选 Podman Desktop免费档起步即可满足大多数小团队;Team 买的是协作与审计,Podman 买的是零许可费 + rootless
大企业(≥250 人或 ≥$10M)Docker Business($24,SSO/ECI 合规套件)或 Podman + RHEL 体系前者是"花钱买治理";后者是"架构自带安全 + Red Hat 商业支持"
本地需要 KubernetesRancher Desktop内置 K3s、可切版本、可切 runtime
CI/服务端(无人值守)Docker Engine 直装 / containerd + nerdctl / Buildah无需 Desktop 许可;Buildah 适合嵌入自定义构建系统
K8s 集群节点containerd(或 CRI-O)dockershim 已移除,既成事实
Windows 专有应用(.NET Framework/IIS)Windows 容器(进程隔离优先)唯一原生路径;接受功能滞后与文件锁定问题
macOS(对照)OrbStack / Colima主题外,仅说明 Docker Desktop 在 Mac 上同样遭遇强劲分流

2.9 数据质量与不确定性声明


三、交叉洞察:两轴结合说明了什么

单看纵轴,这是一部"引爆—战争—收缩—重生"的公司史;单看横轴,这是一张 2026 年的工具选型表。两轴交叉后,下面这些结论才浮现出来。

3.1 五个交叉判断

判断一:Docker 的两次"送走",决定了横轴竞争的形态。 纵轴上,2015 年 runC 捐给 OCI、2017 年 containerd 捐给 CNCF(均 ✅)。横轴上,L1 引擎层之所以存在"同质竞争"——Podman、nerdctl、Buildah 都以"OCI 兼容"为卖点——正是因为格式与运行时已经中立化。Docker 用标准化换来了和平,代价是 L1 层利润归零(全部免费开源),只能退守 L2 桌面发行与 Hub/Scout/DHI 周边获利。横轴结论"Docker 输掉了引擎战争,但赢得了体验战争",其根源必须回到纵轴才能看清:这不是 2026 年发生的事,而是 2015-2017 年捐赠决策的延迟结果。

判断二:横轴的许可竞争格局,是纵轴 2019-2021 收缩决策的直接产物。 2019-11 卖掉企业业务(🔎,来源见 1.5 节)→ 2021-08 订阅制划出 250 人/$10M 线(🔎,来源见 1.6 节)→ 这条线精确划出了免费竞品的生存空间:横轴上 Podman Desktop 与 Rancher Desktop 在企业里的渗透,"相当一部分是许可驱动而非技术驱动"(横轴洞察 4)。反向因果同样成立:订阅收入(定价页 ✅)支撑了 Docker 2025-2026 的 AI 二次创业(✅ 官网截面)。如果 2019 年不卖企业业务或 2021 年不上订阅制,2026 年的桌面端竞争图景会完全不同。

判断三:Windows 的"四级跳"是独木桥,所有跑 Linux 容器的桌面竞品都挤在同一座桥上。 纵轴显示 Docker 在 Windows 上完成了"外挂 VM(Boot2Docker/Toolbox)→ 内嵌 VM(Hyper-V)→ WSL2 轻量子系统 → 自研 VMM"四级跳(1.8 节线索 5);横轴显示 Podman machine 默认 WSL2、Rancher Desktop 强制 WSL2、免 Desktop 方案就是 WSL2 里 apt install(2.7 节)。两轴合并的结论:Windows 上容器体验的决定变量不是容器引擎,而是 VM 管理层、文件共享层与许可层。这也解释了 Docker 自己的产品重心——Compose Watch(2023,✅,用应用层同步绕开文件系统困境)与 Hardened Desktop/ECI(付费加固)全部聚焦"包装层":Docker 早就知道引擎层不再有差异化。

判断四:安全边界是一条轴上追不平、另一条轴上仍在扩张的维度。 横轴指出架构分岔不可调和:root 守护进程 vs fork-exec rootless(2.4 节)。纵轴则显示 Docker 的安全重心在持续外移:内核边界(seccomp 2016 → rootless 2019-2020)→ 供应链边界(Scout 2023 → DHI 2025 → "Make zero CVEs your new default" 2026,✅)。两轴合并看到的是同一个时代趋势的两面:容器安全的重心已从"攻击者逃出容器"转移到"谁在容器里跑什么代码"——Docker 2026-07 的博客标题《Your Laptop Is the New Production Environment》(✅)是这句话的最佳注脚。当开发者的笔记本就是生产环境、当 AI agent 要在本地执行任意代码时,威胁模型从"容器逃逸"变成"恶意代码进入",这正是 Docker 把 AI 叙事全部写成安全叙事(Sandboxes/AI Governance/MCP Gateway)的原因,也是"零 CVE"能成为新营销口号的原因。

判断五:十年的真问题一直是文件 I/O,而不是容器本身。 纵轴线索 2 说"此后十年的真问题是宿主↔VM 文件边界"(9p/virtiofs 痛点 ✅、Compose Watch 的诞生 ✅);横轴的基准乱象(两组研究的开销结论相差近一个量级,见 2.4)与 Windows 侧 bind mount 性能劣化、vhdx 膨胀(低置信 🔎,来源见 2.7 表)都指向同一个物理层事实。对用户的意义:遇到性能问题,先查"代码放在哪个文件系统、文件怎么共享",再考虑"选哪个引擎"——文件共享路径(代码放 WSL2 文件系统内 vs 从 Windows 目录跨 /mnt/c bind mount)、数据落点(named volume vs bind mount)与同步方式(bind mount vs Compose Watch 的 sync 模式)往往是第一杠杆。需要如实说明:本报告没有对"改文件路径 vs 换引擎"做过对照实测,上述"第一杠杆"是基于 9p/virtiofs 跨文件系统机制、named volume 落点机制与官方推出 Compose Watch 的动机(✅)作出的定性判断,不是量化结论。

3.2 对用户的判断与建议

  1. 选型顺序:先算许可账,再谈技术。 第一步查组织规模:<250 人且 <$10M 用 Docker Desktop 免费档;≥250 人或 ≥$10M 先在"Docker Business $24/人/月(约 $72k/年@250 人)"与"Podman Desktop/Rancher Desktop 零许可费"之间算账(✅ 定价页 + 许可协议)。第二步才在架构偏好(rootless 默认 vs 生态默认假设)上做选择。横轴场景矩阵(2.8 节)可直接作为清单使用。
  2. 威胁模型决定安全选型。 主要威胁是供应链(镜像里有什么 CVE、依赖来自哪里)→ Docker Scout + Hardened Images(2025-12 起免费开放 1000+ 镜像,🔎 来源见 2.6 节)生态更完整;主要威胁是内部边界(多租户、不可信开发者、桌面上的恶意输入)→ rootless Podman 的架构默认更优;需要企业管控合规(SSO/SCIM/审计)→ Docker Business 的 ECI/Hardened 套件(✅ 定价页)。两者不互斥:Red Hat 体系内"Podman + RHEL 商业支持"与大企业场景同样成立。
  3. Windows 开发者的操作建议。 日常主线是 WSL2 里的 Linux 容器;Windows 容器只留给 .NET Framework/IIS 专有负载,且进程隔离优先(Hyper-V 隔离更慢且存在 bind mount 文件锁定问题,🔎 moby#42803)。文件 I/O 痛点按优先级排查:先确认代码是否放在 WSL2 文件系统内(而非 /mnt/c 跨文件系统 bind mount)、数据是否用 named volume 而非 bind 挂 Windows 目录(2.3 节),再看是否可用 Compose Watch sync 模式替代 bind mount,最后才轮到等 VMM 时代(2026-08 公测,✅)的虚拟化层改进——这是一条排查顺序,不是实测收益排序(本报告未做对照测量,见判断五的说明)。若企业被迫付费但预算敏感,WSL2 原生 Docker Engine 是合法的免费路径(Engine 开源免费,付费对象只是 Desktop 发行版),代价是手工配置端口转发与自启(🔎,来源见 2.7 节 CSDN 实践)。
  4. 服务器与 CI 的规则和桌面完全不同。 Desktop 许可与服务器无关:CI/无人值守直接装 Docker Engine 或 containerd + nerdctl / Buildah(零许可费);K8s 节点是 containerd 既成事实(dockershim 已移除,🔎 来源见 1.6 节);镜像 OCI 通用,"在哪 build 都能跑"——构建侧唯一需要注意的差别是 BuildKit 与 Buildah 的缓存与生态差距。
  5. 性能数字一律实测。 横轴已证明基准结果相差近一个量级且强烈依赖 workload 与口径;rootless 性能税按"真实存在、幅度不定"处理,用自己的负载测,不引用任何单篇基准。
  6. AI 叙事是变量,不是基座。 2025-2026 Docker 的新产品线(Model Runner、MCP Catalog、Sandboxes、AI Governance、Docker Offload,✅)值得跟进,尤其对要做 agentic AI 工作流的团队,"给 agent 一个隔离的沙箱"正快速成为刚需;但这一层仍在快速演进(2026-10-22 PHP2Shell 漏洞响应 ✅ 说明 Docker 自身也在被攻防),不建议因此改变容器基座选型——基座选择仍由上面五条决定。

四、参考来源

直接核验(✅ 本会话抓取全文或调用 API)

  1. Docker 官方博客《Docker: Nine Years YOUNG》(2022-03-15):https://www.docker.com/blog/docker-nine-years-young/
  2. OCI 官网 About:https://opencontainers.org/about/overview/
  3. CNCF 博客《General availability of containerd 1.0 is here!》(2017-12-05):https://www.cncf.io/blog/2017/12/05/general-availability-containerd-1-0/
  4. CNCF 公告《containerd graduation》(2019-02-28):https://www.cncf.io/announcements/2019/02/28/cncf-announces-containerd-graduation/
  5. Docker 官方博客《Announcing the Compose Specification》(2020-04-07):https://www.docker.com/blog/announcing-the-compose-specification/
  6. Docker 官方博客《Introducing the Docker Desktop WSL 2 Backend》(2019-10-24):https://www.docker.com/blog/new-docker-desktop-wsl2-backend/
  7. Docker 官方博客《Announcing Docker Compose Watch GA Release》(2023-10-03):https://www.docker.com/blog/announcing-docker-compose-watch-ga-release/
  8. Docker 官方定价页(2026-10-31 抓取全文):https://www.docker.com/pricing/
  9. Spacelift《Top 12 Most Useful Docker Alternatives》(2026-06-11 更新,抓取全文):https://spacelift.io/blog/docker-alternatives
  10. Podman Desktop GitHub API(验证 v1.30.5 / 2026-10-13):https://github.com/podman-desktop/podman-desktop/releases

搜索转述(🔎 附原始 URL)

  1. Wikipedia: Docker (software):https://en.wikipedia.org/wiki/Docker_(software)
  2. InfoQ — Docker 1.0:https://www.infoq.com/news/2014/06/docker_1.0/ ;CoreOS Rocket:https://www.infoq.com/news/2014/12/coreos-rocket/ ;Docker 20.10:https://www.infoq.com/news/2021/01/docker-20.10-released/
  3. TechTarget — OCI 1.0:https://www.techtarget.com/news/Open-Container-Initiative/860290
  4. Docker for Mac/Windows beta:https://news.ycombinator.com/item?id=11352389 、https://github.com/docker/for-win/issues/151 、https://adtmag.com/articles/2016/05/18/docker-components.aspx
  5. Docker Toolbox:https://appdevelopermagazine.com/setup-docker-more-easily-now-with-the-docker-toolbox ;Boot2Docker 文档:https://dhrpdocs.github.io/
  6. Windows Server 2016 容器:https://en.wikipedia.org/wiki/Windows_Server_2016 、https://redmondmag.com/articles/2017/04/20/windows-server-2016-getting-linux-containers.aspx
  7. Desktop 集成 Kubernetes:https://www.docker.com/blog/docker-windows-desktop-now-kubernetes 、https://www.docker.com/blog/docker-mac-kubernetes
  8. 多阶段构建:https://docs.docker.com/build/building/multi-stage/ ;userns-remap:https://docs.docker.com/engine/security/userns-remap/
  9. 19.03 release notes:https://docs.docker.com/engine/release-notes/19.03/ ;Rootless Containers:https://www.docker.com/blog/container-security-rootless-containers/
  10. Podman:https://www.redhat.com/en/topics/containers/what-is-podman 、https://earthly.dev/blog/podman/
  11. Mirantis 收购 Docker Enterprise:https://itopstimes.com/contain/mirantis-obtains-the-docker-enterprise-platform-business-from-docker 、https://www.bizjournals.com/sanjose/news/2019/11/15/heres-why-mirantis-did-big-docker-purchase-and.html 、https://tfir.io/mirantis-docker-enterprise-acquisition-two-years-later
  12. Hub 限流:https://cloud.google.com/blog/products/containers-kubernetes/mitigating-the-impact-of-new-docker-hub-pull-request-limits 、https://docs.docker.com/docker-hub/usage
  13. 订阅制:https://www.devopsdigest.com/docker-announces-single-subscription 、https://wiki.licenseware.io/vendors/docker ;许可协议:https://www.docker.com/legal/docker-desktop-license-agreement
  14. compose-spec:https://github.com/compose-spec/compose-spec
  15. dockershim:https://kubernetes.io/blog/2022/02/17/dockershim-faq/ 、https://kubernetes.io/blog/2022/01/07/kubernetes-is-moving-on-from-dockershim/ 、https://www.mirantis.com/blog/the-future-of-dockershim-and-cri-dockerd/ 、迁移指南:https://kubernetes.io/docs/tasks/administer-cluster/migrating-from-dockershim
  16. Engine 23.0:https://www.reddit.com/r/docker/comments/10ry32x/docker_2300_is_out/ ;25.0 release notes:https://docs.docker.com/engine/release-notes/25.0/ ;发布节奏:https://forums.docker.com/t/docker-engine-release-cadence-vs-semver-major-version-numbers/141131
  17. Scout:https://docs.docker.com/scout ;containerd 存储:https://github.com/moby/moby/discussions/48085 、https://docs.docker.com/desktop/containerd/
  18. Model Runner:https://forums.docker.com/t/introducing-docker-model-runner/147922 ;DHI 开放:https://sdtimes.com/softwaredev/docker-open-sources-its-docker-hardened-images-catalog
  19. Rancher Desktop:https://docs.rancherdesktop.io/getting-started/installation ;issue #255:https://github.com/rancher-sandbox/rancher-desktop/issues/255
  20. Windows 容器滞后与已知问题:https://github.com/microsoft/Windows-Containers/issues/653 、https://github.com/moby/moby/issues/42803 、https://docs.adamrehn.com/ue4-docker/read-these-first/windows-container-primer
  21. 性能基准(低置信,指标口径不明,本报告不引用其具体数字):https://shattered.io/docker-vs-podman-overhead-comparison-2026 ;ACM HPC 论文:https://dl.acm.org/doi/10.1007/978-3-030-59851-8_23
  22. WSL2 原生 Engine 实践(🔎):https://blog.csdn.net/weixin_30540691/article/details/94814287

修订轮补充核验(✅ 2026-11-01,处理审读意见时抓取)

  1. Docker 官方博客《Introducing Hardened Images》(2025-05-19,webReader 抓取全文;"near-zero known CVEs""SLSA Build Level 3–compliant"原文出处):https://www.docker.com/blog/introducing-docker-hardened-images/
  2. Docker Docs — Volumes(引擎存储文档,抓取全文;卷存储位置、卷驱动、--volumes-from 备份命令):https://docs.docker.com/engine/storage/volumes/
  3. Docker Docs — Install Docker Desktop on Windows(抓取全文;Linux/Windows 容器模式切换、Windows 容器需 Pro/Enterprise、仅 all-users 安装模式支持):https://docs.docker.com/desktop/setup/install/windows-install/
  4. Docker Docs — Docker Desktop WSL 2 backend(抓取全文;docker-desktop 发行版与数据盘位置):https://docs.docker.com/desktop/features/wsl/
  5. Wikipedia: Docker (software)(webReader 抓取全文;Compose 0.0.1 于 2013-12-21、Moby 项目 2017、WSL2 此前仅 2004 版可用、2020-08 回移 1903/1909):https://en.wikipedia.org/wiki/Docker_(software)
  6. Docker for Mac/Windows GA(2016-07-28,搜索摘要确认 + HN 讨论线索):https://news.ycombinator.com/item?id=12184522
  7. Docker CE/EE 分轨(2017-03,搜索摘要确认):https://www.opensourceforu.com/2017/03/docker-enterprise-community-editions-set-pitch-containers
  8. Docker MCP Catalog and Toolkit(2025-04,搜索摘要;宣布日期两说 22/23,原始终未核验,存疑):https://docs.docker.com/ai/mcp-catalog-and-toolkit/

既有知识(⚠️ 未在线核验,风险低)

  1. cgroups/namespaces 时间线、LXC 与 lmctfy、fig→Compose 更名、libcontainer 替代 LXC、Hykes 卸任、Desktop 4.x 版本号、LCOW 细节、docker.sock 攻击面、Quadlet、slirp4netns/pasta、BuildKit/Buildah 机制细节、named volume 落在 VM 内部文件系统而不经 9p/virtiofs 共享路径的机制推断。

*(最终稿完 · 初稿 2026-10-31 · 2026-11-01 按独立审读意见(8 条)逐条修订定稿)*

思考题(读完后想一想,参考答案可展开)

  1. 报告如何解释 Docker “输掉引擎战争却守住体验战争”的格局?其根源要追溯到哪些历史决策?
    参考答案

    根源是两次捐赠:2015 年 runC 捐给 OCI、2017 年 containerd 捐给 CNCF,格式与运行时中立化后引擎层同质竞争、利润归零。Docker 只能退守桌面层获利:Desktop UX、Compose 与 Hub 网络效应。2022 年 dockershim 移除后,接棒的正是它捐出的 containerd。

  2. Docker 与 Podman 在安全边界上的差异为什么“补丁追不平”?rootless 的代价该如何看待?
    参考答案

    差异来自架构:Docker 是常驻 root 守护进程,拿到 docker.sock 等于拿到宿主机 root;Podman 无守护进程、fork-exec,rootless 是默认状态而非付费开关。rootless 性能税真实存在但幅度不定:不同基准结论相差近一个量级(ACM HPC 实测开销 1.61%–5.10%),任何单一数字都不应作为选型依据,须按自己的负载实测。

  3. 报告自身声明了哪些数据质量局限?Windows 原生容器有哪些结构性短板?
    参考答案

    Desktop 空闲内存约 1.2GB 与 vhdx 膨胀属低置信实测;性能基准因口径不明不引用具体数字;named volume 不经 9p/virtiofs 属机制推断。Windows 原生容器进程隔离在特权粒度、PID namespace 上落后 Linux,Hyper-V 隔离更慢且有 bind mount 文件锁定问题,仅适合 .NET Framework/IIS 专有负载。

  4. Windows 个人开发者的选型第一步是什么?遇到容器性能问题应按什么顺序排查?
    参考答案

    先算许可账:个人与少于 250 人且年收入低于 $1000 万的组织免费用 Docker Desktop;预算敏感可在 WSL2 直装 Docker Engine。性能排查:代码放 WSL2 文件系统内而非 /mnt/c bind mount;数据用 named volume;再用 Compose Watch sync 替代 bind mount;最后才等 VMM 改进。

← 资料库今日播报 →