Docker Engine v29 将 containerd 设为默认镜像存储,提升 API 最低版本,迁移 Moby 到 Go 模块

DevOpsDockerLinuxContainerd

主要更新

Docker Engine v29(于2025年11月11日宣布)做出了四项实用的、面向开发者的改变:新安装默认使用 containerd 的镜像存储(弃用传统的图形驱动路径),最低 Engine API 版本提升至 1.44(Moby v25),Moby 代码库已迁移到 Go 模块(影响 Go 导入路径),并且在 Linux 上提供选择性实验性的 nftables 防火墙支持。Docker Desktop 用户不需要立即采取行动;这些变化主要针对直接运行 dockerd 的 Linux 主机。(docker.com)

为什么这很重要

对于在 Linux 主机或 CI 运行器上运行 Docker Engine 的团队,新安装在镜像层级的行为将有所不同:containerd 的内容存储和快照模型启用了一些功能(懒加载、替代快照器、远程/对等分发),并使 Docker Engine 与 Kubernetes 及其他基于 containerd 的工具保持一致,但这也意味着在迁移过程中需要验证层/内容处理和工具集成。提升的最低 API 可能会破坏与旧版本 Engine 交互的旧客户端和自动化工具;维护者应确保 CI 代理、部署工具和 SDK 已更新,或在推出升级时使用文档中说明的守护进程覆盖。如果 Go 库消费者依赖于旧的 github.com/docker/docker 模块路径,则必须更新导入,切换到使用 github.com/moby/moby,或遵循新的指导以保持最新。nftables 后端改变了防火墙规则的语义(特别是在 DOCKER-USER 周围),目前处于实验阶段,因此在生产环境中启用之前请仔细测试,特别是在使用 firewalld 或运行 Swarm 的主机上(Swarm 对 nftables 的支持尚未准备好)。简而言之:在暂存环境中测试新安装,主动更新 CI/代理和 Go 导入,只有在验证了您环境中的镜像处理和防火墙行为后,才选择迁移路径。(docker.com)

来源

继续阅读