Dockershim 已死,为什么 Kubernetes 坚持抛弃 Docker?
如果你还在用 Docker 跑 Kubernetes,可要留神了。从 Kubernetes 1.24 开始,那个叫 Dockershim 的"兼容层"正式被拿掉了。说白了,Kubernetes 不再自带支持 Docker 的能力。
这可不是普通的版本升级,而是 Kubernetes 发展路上的一个重要分水岭。为啥 Kubernetes 要"甩掉"曾经并肩作战的 Docker?今天咱们就来聊聊这里面的技术逻辑和现实考虑。
01Dockershim 是啥?
想明白 Kubernetes 为啥要放弃 Docker,得先知道 Dockershim 是个啥。Dockershim 是 Kubernetes 为了能用上 Docker 而搞的一个中间层。你可以把它想象成翻译官——Kubernetes 的 Kubelet 组件说"CRI 语言"(容器运行时接口),Docker 只懂"Docker API 语言",Dockershim 就在中间帮忙翻译。
这个翻译工作在当年是必要的。2014 年 Kubernetes 刚出来那会儿,Docker 几乎就是容器的代名词。为了让 Kubernetes 能用上当时最成熟的容器技术,Dockershim 就这么诞生了。
但问题来了:这个"临时"的兼容层,一用就是好几年。CNCF 2025 年的容器运行时报告说,Dockershim 的维护成本占了 Kubernetes 运行时相关代码的 30% 还多。这就好比你为了兼容一个老设备,专门写了一大堆适配代码,结果这个老设备还越来越复杂。
02架构差异
为啥 Kubernetes 非要换掉 Docker?核心在于架构上的不同。
Docker 的架构可以用"大而全"来形容:
•Docker Daemon 是个大块头的守护进程
•把容器运行时、镜像管理、网络、存储、日志啥的都塞进去了
•架构复杂,各个组件绑得比较紧
Containerd 的架构则是"小而美":
•专心管容器的生命周期
•只做容器运行时的核心功能
•架构精简,模块化设计
这种架构差异带来的直接好处就是性能提升。某家大厂 2025 年实测的数据显示:
Pod 启动速度:Containerd 比 Docker 快 20-30%
内存占用:Containerd 少了 30-40%
CPU 开销:降了大概 15%
为啥会有这样的性能差距?因为 Docker Daemon 像个"大管家",啥事都要管。而 Containerd 更像"专业工人",只专心干自己的活。
03拥抱标准
Kubernetes 选 Containerd 还有个重要原因:拥抱行业标准。
2016 年,Kubernetes 社区推出了 CRI(容器运行时接口)。这个接口想干啥?让 Kubernetes 能支持不同的容器运行时,而不是绑死在某个具体的实现上。
Containerd 是第一个完全按 CRI 标准设计的容器运行时。这意味着 Kubelet 可以直接调用 Containerd,不用经过任何翻译层。
相比之下,Docker 的设计比 CRI 标准来得早。要让 Docker 支持 CRI,要么改 Docker 本身(Docker 不太愿意),要么在中间加个翻译层(就是 Dockershim)。
Kubernetes 社区面临的选择是:继续维护一个特定容器的适配器,还是拥抱行业标准?答案很明显:拥抱标准。
04开发者替代方案
不仅生产环境在变,开发环境也在变。Docker Desktop 的资源占用一直是个头疼的问题——动不动就 800MB+ 的内存占用,很多开发者的笔记本都吃不消。
现在,轻量级的替代方案开始冒头:
Rancher Desktop:基于 Containerd,资源占用只有 Docker Desktop 的一半左右,还自带 Kubernetes 集群。
Lima:在 macOS 上跑 Linux 虚拟机的轻量级工具,可以搭配 Containerd 用,资源占用特别低。
Colima:在 macOS 上的最小化容器运行时实现,启动快,资源吃得少。
这些工具的出现,反映了开发者对轻量、高效开发环境的追求。Docker 曾经的"一站式"解决方案,正在被更专业、更轻量的工具组合取代。
05结语
Kubernetes 放弃 Dockershim,不是要放弃 Docker 这个产品,而是要放弃一个过时的兼容模式。这是技术发展的必然结果:从特定实现走向开放标准,从大而全走向小而美,从单一选择走向多元生态。
这次变革告诉我们一个道理:在快速发展的技术领域,拥抱标准比绑定特定实现更重要,架构精简比功能堆砌更有价值,生态开放比封闭垄断更有生命力。
Dockershim 没了,但容器技术的未来反而更亮了。作为技术人,我们要做的不是抗拒变化,而是理解变化背后的逻辑,然后拥抱变化。
毕竟,在技术的世界里,唯一不变的就是变化本身。
作者介绍:
我是老卢,一个在运维领域摸爬滚打了七年的90后,专注 k8s、DevOps、云原生、AIOps 技术。白天搬砖踩坑,晚上码字分享。相信技术改变生活,坚持输出有温度的文章。欢迎关注小绿书“老卢聊运维”
更多推荐




所有评论(0)