Docker 正式发布 Docker Engine 29,这是一次重要的现代化更新,不仅让 Docker 更好地对齐当今主流容器生态,也进一步简化了底层架构。
本次版本的最大亮点是:
containerd 镜像存储正式成为 Docker Engine 的默认选项
这一变化在社区中早有预期,但在官方落地后,意义依旧不小。

一、containerd 镜像存储成为默认设置
尽管 containerd 早已是 Docker 的核心运行时,但过去 Docker 在镜像管理上仍依赖自己的本地存储系统(graphdriver)。此次改动意味着:
- Docker 在 运行时 和 存储层 都完全依托 containerd
- 架构更统一,运维逻辑更一致
- 与 Kubernetes、CRI 等 containerd 生态无缝对齐
对用户的实际好处:
🔹 架构简化:运行时与镜像系统同属 containerd,更少的复杂度、冗余逻辑更少
🔹 兼容性提升:更好地融入以 containerd 为中心的一整套工具链
🔹 未来能力增强:支持快照优化、延迟拉取(lazy pulling)、P2P 镜像分发等新特性
需要注意的是:
- 已有 Docker 安装不会被强制迁移
- 新安装 & 全新系统将默认启用 containerd 镜像存储
二、实验性支持 nftables(未来将逐步取代 iptables)
随着越来越多 Linux 发行版弃用 iptables,Docker 也开始向 nftables 过渡。
Docker Engine 29 引入了实验性功能:
直接使用 nftables 生成网络规则,而不再通过 iptables-nft 进行兼容层转换。
启用方式:
dockerd --firewall-backend=nftables
⚠ 注意事项:
- 功能仍属 实验阶段
- 不建议在生产环境启用
- 后续版本将继续优化并计划支持 Docker Swarm
这标志着 Docker 正式迈向更现代的网络防火墙体系。
三、底层迁移:Moby 项目全面转向 Go Modules
Docker Engine 的开源核心项目 Moby 已正式迁移至 Go Modules,替换旧的依赖管理方式。这一改动虽不直接影响用户,但对:
- 开发者贡献流程
- 构建系统
- 包管理与版本可控性
具有重要意义。
四、API 兼容性变化:最低版本升级到 1.44
Docker Engine 29 将最低支持 API 版本提升至 1.44(对应 Moby v25)。
这意味着:
- Docker 客户端 v25 以下版本将无法连接 Docker Engine 29
- 老旧客户端需升级才能正常操作
对于使用 CI/CD 或自动化脚本的团队,应重点确认兼容性。
五、更多更新:错误修复与改进
除上述重大变更外,Docker Engine 29 包含大量细节修复与优化,涵盖:
- 网络
- 存储
- CLI 行为
- 安全策略
- 性能优化
六、如何升级?
Linux 用户
直接通过发行版的软件仓库更新至 Docker Engine 29。
Docker Desktop 用户
将随 Docker Desktop 的后续版本自动获得更新。
总结
Docker Engine 29 是一次“对生态友好”的版本:
- containerd 完整接管镜像存储 → 与云原生体系更一致
- nftables 支持 → 走向更现代的 Linux 网络架构
- API、构建系统全线升级 → 为未来功能打好基础
对于开发者和运维团队而言,这次更新进一步巩固了 Docker 在容器引擎领域的核心地位,同时也预示着未来功能的大规模扩展。

