6大分类17大有用的docker工具:Docker终失C位 开源少年缘何黑化
6大分类17大有用的docker工具:Docker终失C位 开源少年缘何黑化如果说Docker打败Cloud Foundry依靠的是简洁、简单的微创新,那么K8S对于Docker就是降维打击了,Docker Swarm编排工作只是站在容器视角处理问题,而站在K8S的角度上,容器只是一个运行时的环境,Pod和Service才是K8S编排建模中所考虑的重点,只要符合标准的容器运行时都可以做为Pod进行编排,也就是说K8S对于所有容器一视同仁,用户是否用Docker根本无所谓。在取得优势身位以后,K8S果断开始了去Docker化的动作,在去年年底,CNCF官宣在K8S的1.20版本中Docker能够正常使用,但是会有警告提示,而1.22版本以后,则移除Docker的支持。这其中最大的影响那些用到Docker API的应用都将不能在K8S平台上运行了。K8S是Google在2014开源的一款容器编排项目,一开始K8S只算是一个Google一个人参与的独角戏,但CNCF带来
痛失标准话语权,Docker埋下隐忧
Docker成为C位后,巨头们也看到了容器方面的商机,CoreOS推出了Rocket容器,Google也推出了lmctfy容器,但是面对简洁易用的Docker,即便是开源界无往不利的Google也败下阵来,推出不久之后lmctfy容器项目就被关停,幸福来得太快也让Docker有点飘了,在得到大笔融资之后Docker公司开始了疯狂的买买买,不过Docker之前一直是靠开源社区的力量发展壮大的,靠收购打造出的容器三件套:DockerCompose、Docker Swarm以及DockerMachine明显有点水土不服。不过这倒是影响不大,在有了容器三件套之后Docker正式把公司的名字由原来的dotCloud改名为Docker,并且将Docker注册成了商标全面开启商业化之路。
这一系列的动作基本宣告了之前的开源少年已经开始了商业化的转身,这也就意味着,未来云厂商要容器就要向Docker公司支付授权费用,这一系列的动作让容器领域的众多玩家对于Docker产生了警惕,过旧暴露的商业化意图,让云厂商们感到自身利益受到威胁,Docker没落的种子就此埋下。
2015年,Docker在同行巨大的压力下,他们牵头成立了OCI(Open Container Initiative)基金会,并将自己的容器运行时LibContainer改名为RunC捐赠给OCI,由OCI与容器各方共同制定容器和镜像的标准和规范。但是当时的Docker基本没怎么把OCI放在眼里,而且凭借自身的用户优势对于对于标准的制定也是漠不关心。现在回顾起来放弃标准制订的话语权,也是后来K8S有勇气和Docker说再见的主要原因,虽然OCI在Docker的缺位下发展缓慢,但接下来出场的CNCF(Cloud Native Computing Foundation)基金会却是个真正的狠角色,随着CNCF的出现,Kubernetes也就是K8S终于登场了。
君以此始,必以此终,Docker终失C位
K8S是Google在2014开源的一款容器编排项目,一开始K8S只算是一个Google一个人参与的独角戏,但CNCF带来的社区力量改变了这一切,由于这个时候Docker已经在商业化的道路上一去不返了,不久以后K8S社区就开始和Docker分庭抗礼了,而且逐渐有后来者居上的趋势,基于K8S的微服务等新兴技术框架迅速流行开来,最终使得以K8S为代表的容器编排平台成为了云原生时代的C位。面对CNCF的迅速发展壮大,Docker不得已将自己的Containerd捐赠给了CNCF,并且在2017年10月在Docker企业版中默认内置K8S平台。
如果说Docker打败Cloud Foundry依靠的是简洁、简单的微创新,那么K8S对于Docker就是降维打击了,Docker Swarm编排工作只是站在容器视角处理问题,而站在K8S的角度上,容器只是一个运行时的环境,Pod和Service才是K8S编排建模中所考虑的重点,只要符合标准的容器运行时都可以做为Pod进行编排,也就是说K8S对于所有容器一视同仁,用户是否用Docker根本无所谓。在取得优势身位以后,K8S果断开始了去Docker化的动作,在去年年底,CNCF官宣在K8S的1.20版本中Docker能够正常使用,但是会有警告提示,而1.22版本以后,则移除Docker的支持。这其中最大的影响那些用到Docker API的应用都将不能在K8S平台上运行了。
正如刚刚所说Docker在如日中天的时候对于运行时的标准漠不关心,这也使得很多Docker的增强功能是由Docker Shim组件提供的专属API来完成的,但是Docker Shim并不属于标准的容器运行时,这也就意味着K8S甩掉Docker时根本没有什么太大的负担,而且Docker目前在商业化道路上与CNCF社区渐行渐远,K8S目前作为云原生时代的C位,完全没必要为企业版的Docker去背书。
目前DockerDesktop企业版收费的做法并不是一个明智之举,以目前Docker的江湖地位,各种开源替代产品比比皆是,商业化的动作只会加快他们与开源社区的分手历程。不过拿了人的总是手短,接受融资就要受制于资本,Docker的历程在开源界也算典型,比如Red Hat在被IBM收购以后就停掉了免费版的Cent OS项目,如何平衡免费、开放的理念与商业化利益之间的关系,是整个IT界都需要仔细考虑的问题。
作者:马超,CSDN博客专家,阿里云MVP、华为云MVP,华为2020年技术社区开发者之星。