一场清退,清不了Docker的顽疾!

原创 精选
云计算
无论是Docker始终未能解决的安全性问题,还是其早已千疮百孔并仍在不断恶化的生态环境,都在牵引着这头曾经被称为“硅谷宠儿”的“巨鲸”,慢慢游向一场无法避免的死区。

​作者 | 徐杰承

审校 | 云昭

Docker刚刚度过了非常糟糕的一周。3月15日,Docker对外宣布了其最新的付费订阅计划,并向所有Free Team的Docker Hub用户发送了电子邮件,声称如果未在一个月内升级到付费团队,那么他们的账户将会被删除。

这在业界引起了轩然大波,鉴于来自多方组织的压力,Docker很快便进行了公开道歉:“我们在宣布Docker免费团队的终结方面做得很糟糕。”然而不出所料的是,这未能安抚用户们激烈的情绪,大量用户在对Docker这一行为进行批判的同时,也表示将放弃对Docker的使用与支持。

如今,无论是Docker始终未能解决的安全性问题,还是其早已千疮百孔并仍在不断恶化的生态环境,都在牵引着这头曾经被称为“硅谷宠儿”的“巨鲸”,慢慢游向一场无法避免的死区。

1、安全性顽疾难消

多年以来,Docker都是开发人员工具箱的重要组成部分,借由Docker的帮助,开发者能够以标准的方式构建、分发和部署应用程序。然而随着容器技术的发展以及越来越广泛的应用,Docker的安全性问题也变得越来越显著,并成为了用户逐渐抛弃Docker的一大核心理由。

由于Docker能够有效减少代码膨胀并提供更好的兼容性,因此其通常被用于代替虚拟机。也正是由于这一点,企业更加倾向于使用容器。但与虚拟机相比,Docker较低的隔离性势必会给用户带来一些安全性方面的困扰。

虚拟机通过创建离散状态机实现资源分配,每台计算机都有自己的操作系统,并通过虚拟机管理程序对其进行管理。在Docker中,这些容器构建在容器引擎之上,容器引擎则运行在主机操作系统的应用程序之中。此外,Linux中的chroot和cgroups等更新允许容器在资源划分方面更接近虚拟机。

Docker能够将这些特性打包成易于使用的服务,并添加图像、Docker文件和Docker CLI等概念,它还使系统管理员能够在服务器上快速部署大量容器。但这会带来一些安全隐患——系统管理员可以授予用户在预先部署的架构上运行Docker容器的权限。

图片

但在默认情况下,Docker会将根级权限授予用户,而基于Linux的根级用户访问权限类似于Windows中的管理员访问权限,但其功能更加强大。通过根级用户访问权限,攻击者可以删除整个文件系统,或将普通用户提升为具有根级权限的用户,并在没有通知或警报的情况下安装其他恶意软件。

通过访问不安全的Docker容器,攻击者可以在获得运行权限及访问权限后轻松控制其中的代码。这就意味着心怀不轨的攻击者可以随意控制非特权账户的权限,从而开启一系列新的攻击媒介。

诸如此类攻击在Docker社区中并不新鲜,并且时至今日,攻击者仍在利用这样的方式在Docker系统中发掘更多可利用的漏洞。在近日由ZDNET所发布的一份报告中也提到:由于寻找管理员访问权限暴露的错误配置非常简单,因此自2021年以来,Docker已成为了网络犯罪分子最主要的攻击目标之一。

不可否认的是,Docker的势头在其刚发布的几年,非常火爆,大量业内人士也表示很少见到如此吸引行业兴趣的新兴技术。然而,随着兴奋转化为实际部署,大量企业开始注意到Docker的安全漏洞。尤其是当Docker涉及到安全运营与管理以及具有保密性、完整性和可用性的通用控件的支持时,其表现令大多数人十分失望。

2、因傲慢错失K8s,生态走下坡路

如果说由于自身漏洞与架构缺陷所带来的安全性问题,是生来便拴在这条“鲸鱼”尾部的一条锁链。那么近年来Docker生态系统的不断流失,则可以算的上是一块被人为捆绑在锁链另一端的巨石。

纵观Docker的整个发展历程,其早期所取得的成功使该公司围绕Docker产品建立了一个庞大的社区,并推动了一轮又一轮的融资。而这也使得Docker公司上下变得愈发自大,时至Kubernetes的出现给了他们迎头一击。Docker在处理开源社区宠儿Kubernetes时没能给自己带来任何好处。

尽管Kubernetes最初更倾向于Docker容器,但彼时傲慢的Docker对这位背靠Google的新朋友摆出了敌对姿态,并一意孤行的推出了自己的容器编排平台Docker Swarm。然而就在不久之后,Kubernetes就免费提供了Swarm的所有功能与更多优化,在Docker自己创建的游戏中击败了它。

伴随着Kubernetes这颗新星不断上升,Docker团队也逐渐意识到了自己所犯下的错误。在此后的一次采访中,Docker创始团队员工Jérôme Petazzoni表示:“Docker本可以让Kubernetes成为GitHub上一流的Docker项目,但我们错过了Kubernetes。我们处于集体思维的泡沫中,在内部我们认为Kubernetes太复杂了,Swarm会更成功。没有意识到这一点是我们集体的失败。”

虽然不久之后,Docker于2015年通过创建开放容器标准(OCI)试图再次领导整个行业的发展趋势,但事实证明Docker的这一举动最终变成了搬起石头砸自己的脚。不可否认的是,创建开放标准确实对Docker的生态发展起到了短暂的帮助,但这也为Docker的对手提供了一张免费的入场券,此后的长期竞争使得Docker的行业地位受到了严重侵蚀。

最终在2019年,由于市场、财务等多方面原因,Docker解雇了大批员工,并选择将几乎全部核心业务出售给Mirantis。而这次出售所带来的一系列仓促的商业化改革、收入流限制以及对此前所达成协议的许可条款变更,再度对Docker本就岌岌可危的生态系统造成了一定的影响。随后不久,Kubernetes v1.2版本也宣布了将彻底弃用Docker。至此,Docker这颗曾经耀眼的明星彻底丧失了光芒。

3、慢性自杀,逐渐凋零

虽然目前的Docker依然称得上是业内最流行的容器构建工具之一,并拥有极为庞大的用户群体。但大量开发人员已慢慢开始转向其他替代方案例如Podman或Containerd。尤其是在如今Docker更改其开源计划后,这一趋势一定将会在未来变得更加快速且明显。

对于Docker如今的处境,一位Reddit用户发表了这样的总结:Docker如今正在经历着慢性死亡,无论是Docker技术还是其背后的公司,都已经几乎失去了再度走向辉煌的可能性,因为它们已经没有什么能够再提供的了。

4、写在最后

如今可以遇见的是,在未来的几年内Docker依然能够在容器市场中占有一定的比例,但很明显,十年后的IT环境将不会再把Docker作为开发者技术堆栈中的必备部分。也许届时一些其他依赖于OCI的容器化软件将占据市场领导者的位置,但从Docker目前的发展轨迹来看,这份名单中将不会再有它的身影。

当然,我们也看到Docker在努力挽救,比如从以往的企业导向变为更加注重开发者,但大势所趋,积重难返。最后,只想说,伟大的事物往往不是被别人击溃的,而是自取败亡。

参考链接:

https://analyticsindiamag.com/kubernetes-parting-ways-with-docker-what-does-it-really-mean/

https://analyticsindiamag.com/kubernetes-docker-container-orchestration-race/

责任编辑:武晓燕 来源: 51CTO技术栈
相关推荐

2020-12-17 15:01:13

互联网老员工项目

2018-05-15 09:23:39

Docker开发

2016-09-28 14:04:52

Docker

2017-03-20 19:40:29

AndroidSwipeRefres下拉刷新

2013-01-24 11:03:30

2015-05-26 15:17:44

OpenStack

2011-03-08 11:42:56

2022-11-06 15:56:50

2016-10-26 08:36:16

2021-08-01 22:42:57

区块链互联网技术

2021-07-06 12:27:36

混合云多云云计算

2010-05-05 09:14:07

2010-05-14 00:19:43

2020-06-19 11:43:09

戴尔

2012-12-04 17:44:13

2014-07-21 15:32:03

2022-07-27 16:05:57

元宇宙AISummit

2022-05-07 18:08:09

物联网

2022-11-14 17:11:29

鸿蒙操作系统

2018-06-28 11:30:50

面试AndroidJava
点赞
收藏

51CTO技术栈公众号