大家好!今天,我想和大家聊聊IT基础设施历史上最具戏剧性的事件之一:“Docker的兴衰”。2013年,Docker如彗星般崛起,改变了世界,但为何如今它的地位大不如前?我们将深入剖析其5个决定性原因。🧐

1. 编排战争的失败:Swarm vs Kubernetes ⚔️
Docker最大的失误在于,它不仅想主导容器运行时(执行器),还试图掌控管理大量容器的“编排”市场。
- Docker Swarm的局限性: Docker推出了自己的工具“Swarm”。它易于设置且轻量,但对于管理大规模集群来说,功能不足。
- Kubernetes(K8s)的崛起: 谷歌创建的Kubernetes出现后,局面彻底改变。Kubernetes虽然复杂但功能强大,并成为了全球云标准。
- 结果: 企业开始遵循“用Docker构建,用Kubernetes运行”的模式。Docker沦为简单的“工具”,而Kubernetes则主导了整个市场。☸️
2. “再见Docker” Kubernetes宣布停止支持DockerShim 👋
事实上,对Docker打击最沉重的是Kubernetes。
- Docker变得臃肿: 在Kubernetes看来,Docker是一个过于笨重的工具。它只需要运行容器,但Docker却包含了太多不必要的功能(网络、卷等)。
- CRI(Container Runtime Interface)的出现: Kubernetes创建了一个标准接口(CRI),即使没有Docker也能运行容器。
- DockerShim的移除: 最终,Kubernetes移除了连接Docker的中间层DockerShim(从v1.24版本开始)。现在,在服务器运行环境中不再需要特意安装Docker了。containerd或CRI-O等更轻量级的替代方案占据了其位置。🚫
3. 标准化的悖论 (OCI):人人皆可构建 🛠️
Docker在推动容器技术发展方面,率先创建了OCI(Open Container Initiative)这一标准化组织。然而,这却成为了打破Docker垄断的“回旋镖”。
- 技术标准化: 随着镜像格式和运行时标准化,即使不是Docker,Podman、Buildah等替代工具也能同样处理Docker镜像。
- 红帽的攻势: 尤其是红帽(RedHat)大力推广无需Docker也能完美运行的Podman,进一步缩小了Docker在企业市场中的地位。📦
4. 安全架构的先天局限 (Root Daemon) 🔒
Docker在结构上存在安全方面的脆弱点。
- 需要Root权限: Docker守护进程默认以“Root”权限运行。如果Docker守护进程被黑客入侵,整个服务器都将面临风险。
- Rootless的兴起: 相比之下,竞争对手Podman等从一开始就强调无需Root权限即可运行(Rootless)的架构。重视安全的企业对Docker这种笨重的守护进程方式感到担忧。🛡️
5. 付费政策与开发者的疲劳感 💸
除了技术原因,还有业务战略的失败。
- 缺乏盈利模式: Docker在技术上取得了成功,但在盈利方面却长期受挫。最终,它将企业业务部门出售给了“Mirantis”,规模也随之缩小。
- Docker Desktop收费化: 为了盈利,Docker Desktop开始对大型企业用户收费。这让企业产生了“我们真的必须使用Docker吗?”的疑问,并促使他们寻找Rancher Desktop、Lima等免费替代方案。🏃♂️
📝 结论:Docker已死?不,它的角色变了。
尽管Docker已从“生产环境(Production)”的宝座上退下,但它在“开发环境(Development)”中仍然占据着绝对的第一位。开发者们依然会敲下docker build命令,编写Dockerfile。
然而,Docker成为“基础设施的一切”的梦想破灭了,如今它已缩减为庞大云生态系统中的“一个组件”。这正是Docker走向衰落,或者说“正常化”的原因。
您有什么看法?请在评论区留下您的意见! 👇
发表回复