Alternate Text

Docker

工具

容器化技术标配,开发、部署和 CI/CD 中不可或缺。

2026-10-14 7 微信:tianz003

Moby 是容器生态的"乐高积木"式开源协作框架,Docker Engine 的上游代码库,2026 年 GitHub Stars 超 7.1 万,采用 Apache 2.0 许可,由 Docker 公司发起并开源、社区共同维护。

项目定位

  • 本质:由 Docker 公司于 2017 年 4 月发起的开源项目,将原先高度耦合的 Docker Engine 代码深度解耦为数十个独立、职责单一的子组件,形成可自由组合的"容器系统组装工具箱"。
  • 与 Docker 的关系:Moby 是 Docker Engine 的上游。Docker 每次发新版本,都会把改动推回 Moby;但 Moby 不只属于 Docker,其他项目同样可以以 Moby 为上游搭建自己的容器平台。
  • 许可证:Apache License 2.0,可自由使用和分发(受美国出口管制法规约束)。
  • 治理:走社区 best efforts 路线,不提供商业 SLA;需要企业级支持需选择 Docker Desktop 或 Mirantis Container Runtime。

核心设计原则

原则说明
模块化组件通过 API 协作,各自负责一块功能,想用什么就引入什么
自带配件但可替换自带组件足够搭建完整容器系统,但随时可替换(如用 containerd 替代默认运行时)
可用的安全性默认配置即安全,不需额外加固
面向开发者API 设计目标是让开发者能基于它构建工具,而非终端用户产品


核心组件

组件职责
Container Runtime容器生命周期管理(创建、启动、停止、删除)
Image Management镜像分发、存储与分层管理
libnetwork基于驱动的网络插件系统(bridge、overlay、macvlan 等)
Volume Management容器持久化存储
BuildKit高级镜像构建引擎,支持并发构建、精确缓存、秘密注入、LLB 函数式构建模型
Swarmkit集群编排能力(Docker Swarm 的核心)
containerd容器运行时(已独立为 CNCF 项目,是 Kubernetes 的事实标准运行时)
runcOCI 运行时实现(同样已独立为 CNCF 项目)
distribution镜像分发协议实现(Registry 规范的基础)


2026 年最新动态

  • Docker Engine v29(2025 年 11 月):Containerd 镜像存储成为新安装默认选项(取代旧版图驱动);Moby 正式迁移至 Go modules(旧路径弃用);实验性支持 nftables 防火墙后端;最低 API 版本上调至 1.44。
  • Go 模块路径变更:github.com/docker/docker 不再更新,新公开模块为 github.com/docker/docker/client(API 客户端)和 github.com/docker/docker/api(共享 API 类型),根模块仅产出二进制文件。
  • v29.x 持续修复:2026 年持续发布安全更新(如 CVE-2026-34986、CVE-2026-34040 等),Go 运行时升级至 1.25.x。
  • OCI 规范深度对齐:完整兼容 OCI Runtime Spec、OCI Image Spec,深度参与 OCI Distribution Spec 制定。
  • CRI 适配层:通过抽象 Container Runtime Interface,使 Kubernetes 等编排系统可无缝对接 containerd、CRI-O、Podman 等多种 OCI 运行时。

生态格局

项目与 Moby 的关系
Docker基于 Moby 构建的商业+开源产品,面向终端用户
containerd从 Moby 拆分,CNCF 项目,Kubernetes 默认运行时
runc从 Moby 拆分,CNCF 项目,OCI 运行时参考实现
BuildKitMoby 子项目,独立演进,成为现代镜像构建事实标准
Podman兼容 Docker CLI 的无守护进程容器工具,可复用 Moby API
Lima / Colima基于 Moby/containerd 的 Linux 虚拟机方案
Mirantis承接 Docker EE 的企业级容器运行时


适合谁

  • 需要定制容器平台(如厂商发行版、边缘计算设备)的工程师
  • 想深入理解容器底层原理(namespace、cgroups、overlayfs)的开发者
  • 基于 Moby 组件构建自有容器编排/管理平台的公司
  • 容器安全研究人员(代码透明、可审计)

需要注意

  • 不是终端产品:Moby 面向的是"构建容器工具的人",不是"使用容器的人"。普通用户直接用 Docker Desktop 即可。
  • 无商业支持:社区 best efforts 模式,生产环境建议基于 Moby 构建的成熟发行版(如 Docker Engine、Podman 等)。
  • Go 模块迁移成本:v29 涉及 breaking API 变更,升级前需仔细查阅 release notes。
  • 安全更新节奏:Docker/Moby 定期发布安全补丁,生产环境需保持更新,关注 GitHub Security Advisories。