题记与说明
横纵综合 · 纵轴追踪区间 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 证据分级
两份章节均基于本次研究的网络工具实际抓取与检索完成,非纯模型既有知识输出。综合报告沿用三级标注:
- ✅ 直接核验:会话中抓取原文全文或调用 API 验证(共 10 项:7 个纵轴一手页面 + 横轴定价页/Spacelift 全文 + Podman Desktop GitHub API);最终稿修订轮(2026-11-01)另做了补充抓取,此类核验标注为"✅ 修订轮核验"并附 URL,明细见 2.9 与参考来源;
- 🔎 搜索转述:来自搜索结果摘要并附原始 URL,未逐字核验原文;
- ⚠️ 既有知识:来自模型训练知识、本次未在线核验,单独注明。
- 合并标注(✅🔎 / ⚠️🔎 / 🔎⚠️):同一条目或表格单元格内含多个断言、来源混合时使用,表示"一部分按前一级核验、其余按后一级";各断言的归属以紧随其后的括注或链接为准。合并标注只是"同格混源"的记号,上述三级的互斥定义不变;凡属 🔎 的断言仍须落到本报告参考来源中的具体 URL,落不到的一律降级为 ⚠️。另设"✅ 间接核验":指引已核验原文佐证相邻断言、非逐字核验该断言本身(1.7 的 LinuxKit 与 2.2 的 Desktop for Linux 为用例)。
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 转身
- 2013-03-15:Solomon Hykes 在 PyCon 一场临时 lightning talk 上首次公开演示 Docker。Docker 官方九周年博客(✅ docker.com/blog/docker-nine-years-young)记载:"Nine years ago today, March 15, 2013, Solomon Hykes … first demoed Docker publicly to the world at PyCon",并引用 Hykes 的核心论断:"shipping to the server is hard"。
- Docker 源于 dotCloud 内部的容器引擎;引爆后 dotCloud 于 2013 年 9 月更名 Docker Inc.,全面转向,获 Red Hat、Amazon 等生态支持(🔎 Wikipedia);dotCloud PaaS 业务后出售,⚠️)。
- 2014-06(DockerCon14):Docker 1.0 宣布 "production-ready",商业支持启动,同期 Azure 支持上线(🔎 InfoQ)。*口径注:Wikipedia 记 1.0 于 2014-10-16 发布,本报告以 DockerCon 官宣为准并如实标注两说。*
- 同期 Docker Hub(前身 Docker Index/Registry)承接镜像分发;2014 年前后 DockerCon/官方相继推出 Swarm(雏形)、Machine、Compose、Kitematic 工具链(⚠️ 该集中推出的表述本次未核验;其中可核验的部分:✅ 修订轮核验 Wikipedia) 记 Compose 0.0.1 早在 2013-12-21 已发布、Swarm 后于 1.12 并入 Engine;Compose 由 fig 更名而来属既有知识 ⚠️)。
驱动因素:开发者对 "build once, run anywhere" 的渴望 + GitHub 时代开源势能;2014 年 libcontainer 成为默认执行器,摆脱对 LXC 的依赖(⚠️)。
1.3 生态战争与标准化(2014.6 – 2016.6):Kubernetes、rkt、OCI 三重变奏
Docker 的一枝独秀引来两类挑战:编排层与格式标准。
- 2014-06-10:Google 开源 Kubernetes,把内部 Borg 经验做成容器编排器(🔎 Wikipedia: Kubernetes)。
- 2014-12:CoreOS 发布 Rocket(rkt)与 appc 规范,公开批评 Docker 的集中化(🔎 InfoQ)。
- 2015-06-22:DockerCon 2015 上成立 Open Container Project(后更名 OCI),Docker、CoreOS 等联合发起,Linux 基金会托管。OCI 官网(✅ opencontainers.org/about/overview)记载其由 "Docker, CoreOS and other leaders in the container industry" 发起,且 Docker 将容器格式与运行时 runC 捐赠给 OCI 作为基石。OCI 最终形成 Runtime / Image / Distribution 三大规范(distribution-spec 1.0 于 2020-05,✅ 同页);OCI 运行时与镜像规范 1.0 于 2017-07 发布(🔎 TechTarget)。
- 运行时下沉:2016-12 Docker 宣布剥离 containerd,2017-03-29 捐给 CNCF,2017-12-05 containerd 1.0 GA(✅ CNCF 博客);2019-02-28 containerd 成为 CNCF 第五个毕业项目,公告明言其 "Born at Docker in 2014",如今位于 "Docker engine 与 OCI runc executor 之间"(✅ CNCF 公告)。
- 产品侧同期节点:
- 2015-11 Docker 1.9:libnetwork 落地,
docker network命令 + 可插拔驱动,多主机 overlay 网络(VXLAN)生产可用(🔎 moby/moby#20546 等社区综述); - 2016-02 Docker 1.10:安全专项版——默认 seccomp 过滤、user namespace 重映射(
--userns-remap)、内容寻址存储(CAS)镜像模型、授权插件(🔎 docs.docker.com/engine/security/userns-remap 等); - 2016-06 Docker 1.12:Swarm 从独立工具变为 Engine 内置模式(
docker swarm init、service/task、Raft、routing mesh)(⚠️ 社区发布综述,未附链接)。
- 2015-11 Docker 1.9:libnetwork 落地,
这一阶段确立了此后十年的基本格局: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):从平台公司回到工具公司
- 2018-03:Solomon Hykes 卸任 CTO(⚠️,未在线核验)。
- 2018:Red Hat 发布 Podman:daemonless、fork-exec、天然 rootless、systemd 集成、CLI 兼容 Docker——对 Docker "root 守护进程单点"的架构批评开始产品化(🔎 Red Hat、Earthly)。
- 2019-07 Docker 19.03:rootless 模式(实验性)与原生
--gpusGPU 支持(🔎 docs.docker.com/engine/release-notes/19.03、Docker 博客: Rootless Containers 2019-07-29)。 - 2019-11-13:Docker 将 Docker Enterprise(含约 300 名员工)出售给 Mirantis,媒体报道交易额约 7000 万美元,距 10 亿美元估值高点大幅缩水;留下的 Docker Inc. 聚焦 Desktop 与 Hub,并同步完成 3500 万美元新融资(🔎 iTopStimes、SF Business Times、TFiR 回顾)。九周年博客(✅)确认这次收缩:"our re-focusing in 2019 on the needs of developers is starting to bear fruit"。
- 2019-10-24:WSL 2 后端技术预览(✅ 直接核验:docker.com/blog/new-docker-desktop-wsl2-backend,作者 Simon Ferquel)。原文要点:不再跑独立 VM,而是把 LinuxKit 发行版跑进 WSL2 的一个容器里,产生
docker-desktop(引导)与docker-desktop-data(数据)两个 WSL 发行版;启动比 Hyper-V VM 快 15 倍、动态内存;并预告 "Once Microsoft makes WSL 2 generally available, we plan to enable the WSL 2 engine on all supported Windows versions by default"——且 WSL2 让 Windows 10 Home 用户首次可用 Docker Desktop(此前 Hyper-V 仅限 Pro/Enterprise)。
驱动因素:编排战争败退、企业版销售不及预期、资本耐心耗尽。痛苦的收缩让 Docker 找到此后最稳定的定位:开发者桌面工具 + 镜像分发枢纽。
1.6 回归开发者(2020 – 2022):compose-spec、限流、订阅制与 WSL2 成主航道
- 2020-04-07:开放 Compose 规范(compose-spec),开放治理,AWS、Microsoft 参与共建,目标是让 Compose 文件"从桌面到云"可移植;官方博客当时统计 GitHub 上已有超过 65 万份 Compose 文件(✅ docker.com/blog/announcing-the-compose-specification)。
- 2020-05:WSL 2 随 Windows 10 2004 GA,Docker Desktop WSL2 后端同步 GA(✅ 修订轮核验:Wikipedia) 记 WSL2 此前仅在 Windows 10 2004 版可用、2020-08 才回移 1903/1909,并引 Docker 官方博客《Docker Desktop & WSL 2 - Backport Update》(2020-08-20)证实 Desktop WSL2 后端当时已可用;"同步 GA"的精确日期为既有知识 ⚠️)。
- 2020-11-02 起:Docker Hub 实施拉取限流:匿名 100 次/6 小时、免费登录 200 次/6 小时,大量 CI/CD 受冲击(🔎 Google Cloud Blog、docs.docker.com/docker-hub/usage)。*口径注:现行限额已改为匿名 10 次/小时、免费登录 100 次/小时(🔎 同 docs 页),与横轴定价页所记 Personal 档 100 pulls/hr 一致。*
- 2020-12-09 Docker 20.10:cgroups v2 完整支持、rootless 模式转正(GA)、双日志驱动等(🔎 InfoQ)。
- 2021-08-31:Docker Desktop 订阅制公布:个人、教育、小企业(<250 名员工且年收入 <$1000 万)继续免费,中大型企业需付费(Pro/Team,后加 Business);Linux 上的 Docker Engine 不受影响(🔎 DevOps Digest、Licenseware)。2021-09 Desktop 版本号改 4.x(⚠️);同期 Docker Desktop for Linux 推出(✅ 间接核验:九周年博客 "most recently Docker Desktop for Linux")。
- 2022-04:Compose V2 GA——Python 版
docker-compose用 Go 重写为 CLI 插件(docker-compose→docker compose),基于 compose-spec,ARM 支持齐备;Compose 文件顶层version:字段随后被标记过时(🔎 github.com/compose-spec/compose-spec)。 - 2022-05-03 Kubernetes 1.24:移除 dockershim,kubelet 全部改走 CRI;Docker 构建的 OCI 镜像不受影响,集群运行时迁往 containerd/CRI-O,Mirantis 维护
cri-dockerd兜底(🔎 kubernetes.io FAQ、迁移公告、Mirantis 博客)。"Docker 作为生产运行时"的时代正式落幕——而接棒者正是 Docker 亲手捐出的 containerd。
驱动因素:Hub 限流与订阅制是收入模型重建(九周年博客 ✅ 给出收缩后的规模:1000 万注册开发者、每月 3500 万次 Engine 下载、14PB 镜像存储、每月 31PB 出口流量);WSL2 是 Windows 开发体验的决定性变量——文件 I/O 提升一个量级、内存动态化、Home 版可用。
1.7 安全叙事与 AI 转向(2023 – 2026.10):BuildKit 默认、Scout、Hardened Images 与"笔记本即生产环境"
- 2023-02-01 Docker Engine 23.0:BuildKit 成为默认构建器,旧 builder 弃用(可
DOCKER_BUILDKIT=0回退)(🔎 moby 发布讨论、Reddit)。 - 2023:Docker Scout 发布——从镜像生成 SBOM、对接漏洞库定位 CVE,集成 Desktop/CLI/GitHub Actions/各运行时,Docker 正式切入软件供应链安全(🔎 docs.docker.com/scout)。
- 2023-10-03 Compose Watch GA(✅ 直接核验:docker.com/blog/announcing-docker-compose-watch-ga-release):随 Compose 2.22.0 / Desktop 4.24 GA;
develop.watch提供 sync/rebuild/restart 三种动作,官方明说目标是替代 bind mount 这一"为热重载而生的脆弱 workaround",并解决 Desktop 与 Linux Engine 文件共享行为不一致的问题——Compose 从"编排工具"演进为"本地开发内环工具"。 - 2023-12 – 2024:Engine 25.0(2023-12)、26.0(2024-04)、27.0(2024-06)相继发布(🔎 发布节奏讨论、docs.docker.com/engine/release-notes/25.0)。containerd 镜像存储从 2022 年 Desktop 4.6 实验特性,经 2024-06 官方路线图讨论(🔎 moby/moby discussion #48085),到 2024 年末 Desktop 4.33–4.34 前后对新安装默认启用(🔎 docs.docker.com/desktop/containerd)。
- 2025:Engine 28(2025-02,⚠️);2025-04-29 Docker Model Runner(beta)——Desktop 内本地拉取/运行/管理 AI 模型,
docker model命令,Hub 开始分发模型(🔎 Docker 论坛公告);2025-04 下旬 MCP Catalog & Toolkit——Desktop 里一键管理 MCP 服务器,瞄准 agentic AI 工作流(🔎 Docker 文档:MCP Catalog and Toolkit,搜索摘要记宣布于 2025-04-23,原文未核验、具体日期存疑 ⚠️);2025-05-19 Docker Hardened Images(DHI)——极简、持续维护的企业级安全镜像目录(✅ 修订轮核验发布原文:docker.com/blog/introducing-docker-hardened-images),2025-12-17 前后宣布开放(1000+ 镜像、免费),时机上借势 Bitnami 授权变更(🔎 SD Times)。 - 2026-10-31 截面(✅ 直接核验:本会话抓取 docker.com 官网实时页面):产品线已全面 AI 化——Docker Sandboxes("Isolated environments for coding agents")、AI Governance(治理 agent 的执行、网络、凭据与 MCP 工具调用)、Gordon(全产品线 AI 助手)、MCP Enterprise Gateway、Docker Offload;官方博客 2026 年标题序列:《AI Governance: Unlock Agent Autonomy, Safely》(2026-05-12)、《Your Laptop Is the New Production Environment》(2026-07-08)、《Why AI Agents Need Isolation… Docker SBX / Sandbox Kits》(2026-07-01)、《Make zero CVEs your new default》(2026-08-17)、《Docker VMM Public Beta: A Complete Overhaul, Built for Performance》(2026-08-12,Mac 与 Windows 双平台公测的新自研虚拟化层)、《Manufacturing Trust for AI Agents》WeAreDevelopers 主题演讲(2026-09-24)、PHP2Shell 漏洞响应通告(2026-10-22,CVE-2026-109618/109619)。
驱动因素:运行时战争定局后,Docker 的增长点转向安全供应链(Scout/DHI/zero-CVE)与 AI 工作负载(Model Runner/MCP/Sandboxes/AI Governance);Windows 体验沿"自研虚拟化层"继续深化(VMM 公测)。
1.8 六条贯穿线索的纵向复盘
- 镜像与构建:AUFS 起家(⚠️)→ 1.10 内容寻址存储(2016-02)→ 17.05 多阶段构建(2017-05)→ BuildKit/buildx 推广(2019 起)并于 23.0 成为默认(2023-02)→ containerd 镜像存储默认化(2024 末)→ buildx/attestation/SBOM 成为 Scout 地基(2023–2025)。主线:构建从"守护进程附属功能"独立成可插拔子系统。
- 网络与卷: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 文件边界"。
- Compose:2014 初版(fig 更名,⚠️)→ v2/v3 格式迭代(2016–2017,⚠️)→ compose-spec 开放(2020-04,✅)→ V2 Go 重写并入 CLI(2022-04)→ Watch GA 转向开发内环(2023-10,✅)。主线:编排输给 Kubernetes 后,Compose 退守并深耕"本地多容器开发"这个独有生态位。
- 安全边界: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 守护进程模型始终是被攻击的靶心。
- 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 与内存开销两条硬指标驱动。
- 公司与项目命运: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–2012 | jail/Zones/cgroups/namespaces/LXC | 内核社区、Google | 资源隔离需求 |
| 诞生引爆 | 2013.3–2014.6 | PyCon 演示(2013-03-15);更名 Docker Inc.;1.0(2014-06 DockerCon 官宣) | Hykes、dotCloud 团队 | 开发者体验、开源势能 |
| 生态战争 | 2014.6–2016.6 | K8s(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–2017 | Toolbox(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–2019 | Podman(2018)、containerd 毕业(2019-02)、19.03 rootless/GPU(2019-07)、WSL2 预览(2019-10)、Mirantis 收购企业业务(2019-11) | Docker、Mirantis、CNCF、Red Hat | 编排败退、资本压力 |
| 回归开发者 | 2020–2022 | compose-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 红利 |
| 安全+AI | 2023–2026.10 | 23.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 + Desktop | Podman + Podman Desktop | Rancher Desktop | containerd + nerdctl | WSL2 原生 Docker(免 Desktop) | Windows 原生容器 |
|---|---|---|---|---|---|---|
| 架构 | 客户端-守护进程(dockerd,通常 root) | 无守护进程,fork-exec,天然 rootless | WSL2 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 ⚠️ |
| Compose | docker 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)✅🔎 |
| Kubernetes | Desktop 内置 ✅ | 经 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 安全边界:结构性差异最大的维度
这是横轴上无法靠迭代追平的维度,差异来自架构而非功能:
- Docker:经典架构是常驻 root 守护进程 dockerd,客户端经
/var/run/docker.sock通信——拿到 docker.sock 等于拿到宿主机 root,这是容器安全的教科书级攻击面(⚠️)。Docker 的商业回应是把加固做成付费功能:官方定价页显示 Enhanced Container Isolation (ECI)、Hardened Docker Desktop、Registry/Image Access Management、Settings Management 全部只出现在 Business 档($24/人/月)(✅ docker.com/pricing,本次抓取全文)。 - Podman:无守护进程 + fork-exec,容器进程直接由用户会话派生,rootless 是默认状态而非可选开关。2026 年的容器运行时综述均将"rootless 比 root 容器更安全"列为 Podman 的结构性优势(⚠️ 未附链接),另有 2026-09 文章直言"Podman 和 Docker 是两个物种,不是换皮"(⚠️ 未附链接)。Podman 还借 systemd Quadlet 把容器声明为 systemd 单元,用传统服务安全模型管理容器(⚠️)。
- Rancher Desktop:容器跑在 WSL2 VM 内,多一层 VM 边界;runtime 可在 dockerd 与 containerd 之间切换(✅ docs.rancherdesktop.io,🔎)。
- 性能代价:安全不是免费的。某 2026 年 SEO 型基准站给出了一组"开销百分比"对比,但未说明度量口径——该站自称转引自一篇 arXiv 论文的"相对裸机基线的最大开销",却既未写明是 CPU、吞吐还是延迟,也未写明测试负载,转述归属亦存疑(🔎 shattered.io,低置信来源;因口径不可考,本报告不引用其具体数字);而 ACM 收录的 HPC 研究实测 Podman+crun 相对原生执行开销仅 1.61%–5.10%(🔎 ACM 论文,口径明确:容器相对原生执行的总体开销,HPC 负载)。两组结论相差近一个量级,说明基准结果强烈依赖 workload 与口径。本报告结论:任何单一开销数字都不应作为选型依据,rootless 的性能税真实存在但幅度不定,按自己的负载实测。
2.5 成本与许可:一条 250 人/$10M 的分界线
本次直接抓取的官方定价页(✅ docker.com/pricing):
| 档位 | 年付价/人/月 | 月付价/人/月 | 关键差异 |
|---|---|---|---|
| Personal | $0 | $0 | 1 用户、100 pulls/hr、1 个私有 Hub 仓库 |
| Pro | $9 | $11 | Testcontainers Cloud 100 分钟、无限拉取 |
| Team | $15 | $16 | 100 用户、RBAC、审计日志、2 个工作日支持 |
| Business | $24 | $24 | SSO、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 生态与成熟度
- Kubernetes 事实:K8s 自 1.24 移除 dockershim 后,集群运行时的位置已让给 containerd(🔎 kubernetes.io 迁移指南)。Docker 在服务器侧引擎战争已经出局,但镜像仍是 OCI 通用格式,"docker build 出的镜像在任何 runtime 都能跑"。
- 社区规模(✅ Spacelift 抓取):Kubernetes ~123k stars > Podman ~32k > containerd ~21k > runc ~13.3k > Buildah ~9k > LXC ~5.2k。Docker 自身不在该清单,但作为工具链默认假设的地位无可争议(✅)。
- 工具链默认假设:VS Code Dev Containers、大量 CI Runner、教程与 Helm 文档默认 docker.sock 存在——依赖 docker.sock 的组件(Portainer、CI Runner)在 Podman 上需要额外处理(⚠️ 2026-10 运行时综述的转述,来源未附链接:"Docker 跑需要完整生态的服务,Podman 跑 rootless 安全隔离的容器")。
- GUI 与周边:Docker Desktop 有扩展市场、Scout 镜像分析、Testcontainers Cloud 等付费/增值周边(✅ 定价页抓取);Docker Hardened Images(DHI)是镜像目录而非付费 Desktop 功能——官方发布文(2025-05-19,✅ 修订轮核验:docker.com/blog/introducing-docker-hardened-images)称其镜像"持续更新以保证近零已知 CVE(near-zero known CVEs)"、构建系统"SLSA Build Level 3–compliant",镜像目录自 2025-12 起免费开放 1000+ 镜像(🔎 SD Times,另见 1.7 与 3.2-2);Docker 真正的付费加固点是 Desktop 侧的 ECI/Hardened Desktop(Business 档,✅ 定价页)。Podman Desktop 截至 2026-10-13 为 v1.30.5(✅ GitHub API 验证),支持管理 Podman、Docker 与 Kubernetes 三种后端(⚠️ 未附链接);Rancher Desktop 的差异化是内置 K3s 与 runtime 可切换(✅ Spacelift)。
2.7 Windows 开发体验专项(课题重心)
Windows 上跑 Linux 容器的格局可以概括为一句话:大家都落在同一个 WSL2(或 Hyper-V)虚拟机里,只是包装和收费不同——唯一的例外是走 Windows 内核的 Windows 原生容器(下表末行,Docker Desktop 也可切换到该模式)。
| 方案 | Windows 上的实现路径 | 特色与代价 |
|---|---|---|
| Docker Desktop | Linux 容器(默认):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 Desktop | podman machine:默认 WSL2 provider,可切 Hyper-V | v1.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 免费档) | 个人用途免费;生态默认假设、教程最多、开箱即用 |
| 预算敏感的个人/Homelab | WSL2 原生 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 商业支持" |
| 本地需要 Kubernetes | Rancher 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 数据质量与不确定性声明
- ✅ 本次直接核验:Docker 官方定价全表(webReader 抓取);Spacelift 12 个替代品条目全文;Podman Desktop v1.30.5 / 2026-10-13(GitHub API
curl https://api.github.com/repos/podman-desktop/podman-desktop/releases/latest返回"tag_name": "v1.30.5")。 - ✅ 修订轮补充核验(2026-11-01,处理审读意见时抓取/搜索):Docker 官方 DHI 发布博客《Introducing Hardened Images》全文("near-zero known CVEs""SLSA Build Level 3–compliant"原文);docs.docker.com 引擎卷存储页(卷挂载点、卷驱动、
--volumes-from备份命令);docs.docker.com Desktop Windows 安装页(Linux/Windows 容器模式切换、Windows 容器需 Pro/Enterprise、仅 all-users 模式支持);docs.docker.com Desktop WSL 特性页(docker-desktop发行版、数据盘位置);Wikipedia Docker 条目全文(Compose 0.0.1 于 2013-12-21、Moby 项目 2017、WSL2 此前仅 2004 版可用等);2016-07-28 GA 与 2017-03 CE/EE 分轨经搜索摘要确认(附 HN 与 Open Source For You 链接,原文未逐字核验)。 - 🔎 搜索摘要转述(附链接,未抓原文):Rancher Desktop 的 WSL2 要求与 issue #255;Windows-Containers#653;moby#42803;Adam Rehn primer;dockershim 迁移指南;Docker 许可协议 250 人/$10M 条款;中文实测数据(原始链接为搜索引擎重定向短链,低置信);shattered.io 性能页(低置信,且未说明指标口径,见 2.4)。
- ⚠️ 模型既有知识(未在线核验):BuildKit/Buildah 构建机制细节、docker.sock 攻击面常识、compose-spec 与 Quadlet、rootless 网络栈(slirp4netns/pasta)、Windows Server Core 镜像体积量级、named volume 不经 9p/virtiofs 共享路径的机制推断(2.3)。属容器领域多年稳定知识,风险低,但严格意义上未经本次会话验证。
- 未能完成:Podman Desktop 官网下载页为 JS 渲染无法抓取,版本信息改由 GitHub API 补证;Docker 定价页首次 WebFetch 因 ECONNRESET 失败,改用 webReader 成功。修订轮新增未完成项:SD Times 的 DHI 开放报道两次抓取失败(HTTP 400 / 网络错误),"2025-12 开放、1000+ 镜像"维持初稿搜索转述口径;shattered.io 性能页可访问但无指标口径与负载说明;docs.docker.com 的 Windows 容器特性专页多次连接失败,容器模式切换信息改以 Windows 安装页(已抓取全文)为准;Docker MCP Catalog 宣布的原始终未核验(搜索摘要记 2025-04-23,初稿记 04-22,日期存疑)。
三、交叉洞察:两轴结合说明了什么
单看纵轴,这是一部"引爆—战争—收缩—重生"的公司史;单看横轴,这是一张 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 对用户的判断与建议
- 选型顺序:先算许可账,再谈技术。 第一步查组织规模:<250 人且 <$10M 用 Docker Desktop 免费档;≥250 人或 ≥$10M 先在"Docker Business $24/人/月(约 $72k/年@250 人)"与"Podman Desktop/Rancher Desktop 零许可费"之间算账(✅ 定价页 + 许可协议)。第二步才在架构偏好(rootless 默认 vs 生态默认假设)上做选择。横轴场景矩阵(2.8 节)可直接作为清单使用。
- 威胁模型决定安全选型。 主要威胁是供应链(镜像里有什么 CVE、依赖来自哪里)→ Docker Scout + Hardened Images(2025-12 起免费开放 1000+ 镜像,🔎 来源见 2.6 节)生态更完整;主要威胁是内部边界(多租户、不可信开发者、桌面上的恶意输入)→ rootless Podman 的架构默认更优;需要企业管控合规(SSO/SCIM/审计)→ Docker Business 的 ECI/Hardened 套件(✅ 定价页)。两者不互斥:Red Hat 体系内"Podman + RHEL 商业支持"与大企业场景同样成立。
- 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 实践)。 - 服务器与 CI 的规则和桌面完全不同。 Desktop 许可与服务器无关:CI/无人值守直接装 Docker Engine 或 containerd + nerdctl / Buildah(零许可费);K8s 节点是 containerd 既成事实(dockershim 已移除,🔎 来源见 1.6 节);镜像 OCI 通用,"在哪 build 都能跑"——构建侧唯一需要注意的差别是 BuildKit 与 Buildah 的缓存与生态差距。
- 性能数字一律实测。 横轴已证明基准结果相差近一个量级且强烈依赖 workload 与口径;rootless 性能税按"真实存在、幅度不定"处理,用自己的负载测,不引用任何单篇基准。
- AI 叙事是变量,不是基座。 2025-2026 Docker 的新产品线(Model Runner、MCP Catalog、Sandboxes、AI Governance、Docker Offload,✅)值得跟进,尤其对要做 agentic AI 工作流的团队,"给 agent 一个隔离的沙箱"正快速成为刚需;但这一层仍在快速演进(2026-10-22 PHP2Shell 漏洞响应 ✅ 说明 Docker 自身也在被攻防),不建议因此改变容器基座选型——基座选择仍由上面五条决定。
四、参考来源
直接核验(✅ 本会话抓取全文或调用 API)
- Docker 官方博客《Docker: Nine Years YOUNG》(2022-03-15):https://www.docker.com/blog/docker-nine-years-young/
- OCI 官网 About:https://opencontainers.org/about/overview/
- 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/
- CNCF 公告《containerd graduation》(2019-02-28):https://www.cncf.io/announcements/2019/02/28/cncf-announces-containerd-graduation/
- Docker 官方博客《Announcing the Compose Specification》(2020-04-07):https://www.docker.com/blog/announcing-the-compose-specification/
- Docker 官方博客《Introducing the Docker Desktop WSL 2 Backend》(2019-10-24):https://www.docker.com/blog/new-docker-desktop-wsl2-backend/
- Docker 官方博客《Announcing Docker Compose Watch GA Release》(2023-10-03):https://www.docker.com/blog/announcing-docker-compose-watch-ga-release/
- Docker 官方定价页(2026-10-31 抓取全文):https://www.docker.com/pricing/
- Spacelift《Top 12 Most Useful Docker Alternatives》(2026-06-11 更新,抓取全文):https://spacelift.io/blog/docker-alternatives
- Podman Desktop GitHub API(验证 v1.30.5 / 2026-10-13):https://github.com/podman-desktop/podman-desktop/releases
搜索转述(🔎 附原始 URL)
- Wikipedia: Docker (software):https://en.wikipedia.org/wiki/Docker_(software)
- 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/
- TechTarget — OCI 1.0:https://www.techtarget.com/news/Open-Container-Initiative/860290
- 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
- Docker Toolbox:https://appdevelopermagazine.com/setup-docker-more-easily-now-with-the-docker-toolbox ;Boot2Docker 文档:https://dhrpdocs.github.io/
- 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
- Desktop 集成 Kubernetes:https://www.docker.com/blog/docker-windows-desktop-now-kubernetes 、https://www.docker.com/blog/docker-mac-kubernetes
- 多阶段构建:https://docs.docker.com/build/building/multi-stage/ ;userns-remap:https://docs.docker.com/engine/security/userns-remap/
- 19.03 release notes:https://docs.docker.com/engine/release-notes/19.03/ ;Rootless Containers:https://www.docker.com/blog/container-security-rootless-containers/
- Podman:https://www.redhat.com/en/topics/containers/what-is-podman 、https://earthly.dev/blog/podman/
- 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
- 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
- 订阅制:https://www.devopsdigest.com/docker-announces-single-subscription 、https://wiki.licenseware.io/vendors/docker ;许可协议:https://www.docker.com/legal/docker-desktop-license-agreement
- compose-spec:https://github.com/compose-spec/compose-spec
- 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
- 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
- Scout:https://docs.docker.com/scout ;containerd 存储:https://github.com/moby/moby/discussions/48085 、https://docs.docker.com/desktop/containerd/
- 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
- Rancher Desktop:https://docs.rancherdesktop.io/getting-started/installation ;issue #255:https://github.com/rancher-sandbox/rancher-desktop/issues/255
- 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
- 性能基准(低置信,指标口径不明,本报告不引用其具体数字):https://shattered.io/docker-vs-podman-overhead-comparison-2026 ;ACM HPC 论文:https://dl.acm.org/doi/10.1007/978-3-030-59851-8_23
- WSL2 原生 Engine 实践(🔎):https://blog.csdn.net/weixin_30540691/article/details/94814287
修订轮补充核验(✅ 2026-11-01,处理审读意见时抓取)
- 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/
- Docker Docs — Volumes(引擎存储文档,抓取全文;卷存储位置、卷驱动、
--volumes-from备份命令):https://docs.docker.com/engine/storage/volumes/ - Docker Docs — Install Docker Desktop on Windows(抓取全文;Linux/Windows 容器模式切换、Windows 容器需 Pro/Enterprise、仅 all-users 安装模式支持):https://docs.docker.com/desktop/setup/install/windows-install/
- Docker Docs — Docker Desktop WSL 2 backend(抓取全文;
docker-desktop发行版与数据盘位置):https://docs.docker.com/desktop/features/wsl/ - 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)
- Docker for Mac/Windows GA(2016-07-28,搜索摘要确认 + HN 讨论线索):https://news.ycombinator.com/item?id=12184522
- Docker CE/EE 分轨(2017-03,搜索摘要确认):https://www.opensourceforu.com/2017/03/docker-enterprise-community-editions-set-pitch-containers
- Docker MCP Catalog and Toolkit(2025-04,搜索摘要;宣布日期两说 22/23,原始终未核验,存疑):https://docs.docker.com/ai/mcp-catalog-and-toolkit/
既有知识(⚠️ 未在线核验,风险低)
- 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 条)逐条修订定稿)*