发布于 2026-01-06 1 阅读
0

谁抢了 Docker 的午餐?DEV 全球展示挑战赛,由 Mux 呈现:展示你的项目!

谁吃了Docker的午餐?

由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!

昨天,Mirantis 收购了 Docker Enterprise,其中包括镜像仓库、企业账户以及 Docker Inc. 旗下几乎所有有价值的资产。如今,Docker Inc. 只剩下空壳公司。虽然交易金额尚未公开,但普遍认为数额不大。

Docker 曾经是科技界的宠儿。如今我们不禁要问——是谁抢走了它的饭碗?

Docker 有哪些做得好的地方?

1. 出色的开发者用户体验

Solomon Hykes 及其团队利用一项不太为人熟知的旧技术“Linux 容器 (LXC)”,打造了卓越的开发者体验。
这就像把旧酒(LXC)装进了新瓶。它让开发者能够创建可重用、可重新部署的二进制文件,这简直令人难以置信。容器一旦构建完成,就可以docker run在任何 Unix 系统上运行,而且都能正常工作。这正是过去 Java jar 包所承诺的,只不过规模更大、更通用。

2. 更快的 REPL 循环

为 Docker 容器创建分层结构(类似于 Git)是另一项妙招。开发人员可以在其他构建中重用各种预构建层。这显著缩短了增量构建的构建时间。在开发人员的世界里,更快的 REPL 循环总是能带来更快的采用率;事实也的确如此。

但这种设计也有缺点,那就是会导致 Docker 镜像臃肿不堪。虽然已经出现了多种变通方法来解决这个问题,但这仍然是容器领域面临的最大挑战之一。

3. 随时随地,想跑就跑

无论好坏,大多数开发人员的机器都不是生产环境的副本。例如,虽然我用的是 Macbook 写代码,但我们的生产环境是一个 Debian 集群。如果你在企业工作,你甚至可能被要求使用 Windows 作为你的主要开发环境。

这种差异会带来一系列全新的难题。对于一个你不太熟悉的系统,开发和调试都非常困难。

允许开发者在一个操作系统内部运行另一个操作系统是一项巨大的成就。

4. DevOps 的兴起

“DevOps”一词的含义一直存在争议,不同的人对它的理解也各不相同。Docker 的出现彻底改变了开发人员将代码“扔给”系统管理员,由后者负责在生产环境中运行和维护代码的方式。这促成了混合团队的诞生,开发人员和运维人员可以紧密合作。而这一切的实现,离不开让运维人员更容易接近开发人员(反之亦然)。

作为开发人员,如果我可以在本地机器上运行 Docker 容器,并保证它在生产环境中也能以相同的方式运行,这会让我对自己解决生产问题的能力更有信心。

Docker到底出了什么问题?

大多数开发者工具公司(例如 IntelliJ、Terraform 等)都是从一款热门产品起家,以此在开发者心中保持领先地位。但仅靠单一产品很难实现盈利并建立一家长久的公司。作为一家公司,你需要开发二线和三线产品,依托于第一款产品的受欢迎程度。最终,这一系列产品汇聚起来,形成一股强大的力量。

以成功的开发者工具公司 HashiCorp 为例。他们首款爆红的产品是 Terraform,一个多云资源配置系统。用户只需编写一个简单的配置文件,即可在任何云服务提供商之间配置计算机。HashiCorp 充分利用了 Terraform 的成功,开发了一系列产品,例如 Consul、Vault 等,每款产品都面向企业级用户。这使得企业团队能够协作、集群化并监控其生产系统。

另一方面,Docker未能成功打造出二线产品。浏览他们的网站,你会发现产品种类有限。Docker Hub 虽然必不可少,但不足以支撑公司的运营。Docker Swarm(原本可能是他们的整合产品)与如今的编排巨头 Kubernetes 相比,技术上却逊色不少。

“一次构建,到处运行”的最初承诺固然美好,但
管理生产环境却完全是另一回事。
运行集群、安全管理、网络分区、各层级的冗余备份,这些都让系统管理员时刻保持警惕。在生产环境中使用 Swarm 的体验远非理想,它根本无法满足需求。

在这一领域,Kubernetes 的表现要好得多(尽管其开发用户体验很糟糕),能够轻松运行生产工作负载。

Prometheus、New Relic 等可观测性产品利用了 Docker 容器难以监控的弱点,因为它们是隔离的二进制文件。这对 Docker 公司来说又是一次错失良机。

如果能够开箱即用地提供监控数据,那将是一项巨大的优势。它还可以确保我作为一名开发者,能够融入到整个生态系统中。

所有这些错失的良机都是难以解决的难题,并非一朝一夕就能解决。但 Docker 有足够的时间来解决这个问题。毕竟,它曾是科技界的宠儿。在其巅峰时期,Docker 拥有愿意投资其未来的投资者,以及渴望加入该公司的开发者。

Docker公司确实推出了面向企业的咨询服务,但其收入被归类为服务收入。而服务收入不如产品收入受重视,因为服务的可重复性和可扩展性并不高。

Docker在技术开发方面非常出色,但不可否认的是,它在盈利方面一直举步维艰。Docker的开拓性愿景及其在市场上的挣扎都值得我们学习。

我希望看到这项技术蓬勃发展,并且我乐观地认为 Mirantis 将会不负 Docker Inc. 的盛名。

文章来源:https://dev.to/mohanarpit/who-ate-docker-s-lunch-39e5