Py学习  »  docker

再见Docker!感谢所有人!

Docker • 4 年前 • 421 次点击  

Docker不再是唯一的容器运行时,与Docker所能提供的相比,即将出现的其他容器运行时将更快、更安全、更智能、功能更丰富(其中一些已经如此)。Docker,再见!感谢Docker!感谢所有在容器技术上做出付出与贡献的可爱的人们!
早在2018年7月[1],我就开始写一篇关于Docker作为公司即将消亡的博客文章(也可能是作为一种技术消亡),但我从来没有抽出时间来完成和发表这篇文章。是时候把那篇文章拿出来了。


当然Docker还在这里,每个人都还在使用Docker,并且在不久的将来还会继续这样做(可预见的将来会有多远——还有待确定)。我之所以选择这个标题作为博客文章的标题,是因为在我看来,Docker作为一家公司的日子已经屈指可数了,或许它作为技术也是这样。请允许我占用你几分钟的时间,我将与你分享我的想法的基础。

几年前,Docker是一家改变世界的公司,我们可以肯定地说,今天仍然在改变世界。容器和容器背后的技术已经存在多年,远在Docker这个词还没被想到,甚至变成了一个动词(“容器化”所有的应用)之前就已经存在了,但Docker是鼓励大众消费技术的公司。容器,以一种简单容易且时尚的方式存在着。大多数技术公司(或者至少是那些认为自己是现代技术公司的公司)将使用Docker或容器作为其产品或管道的一部分,因为它非常有意义,并为整个流程带来了如此多的好处。

在过去的12-24个月里,人们逐渐意识到Docker已经走完了自己的路,作为一种技术,他们将无法为今天的产品提供额外的价值,并决定从其他地方寻找额外的优势。

Kubernetes赢得了容器编排之战,我想没有人否认这一事实。Docker本身也采用了Kubernetes。总会有一些利基玩家(niche players)拥有特定的Docker Swarm、Mesos、Marathon和Nomad的用例,但事实上的标准是Kubernetes。所有3家大型云服务提供商现在都有一个托管的Kubernetes解决方案,可以提供给他们的客户(最终将会淘汰他们自己多年来开发的自制解决方案,因为只能有一个)。每家云服务提供商都在建设更多的服务,提供更多的解决方案,以吸引更多的客户,增加他们的收入。

故事到这里就结束了,这没什么好看的。接下来是闪亮的东西。

目前,Kubernetes使用Docker作为底层容器引擎。我认为Kubernetes社区理解Docker作为一个容器运行时(我特别使用这个术语)是尽快推出产品的最终解决方案。他们也很早就(明智地)认识到,他们需要有一个选择,那就是切换出容器运行时的选项,并最终允许Kubernetes的消费者做出选择。

开放容器[2]计划带来了运行时规范,它打开了一扇门,让我们所有人都可以使用Docker以外的其他东西作为运行时。而且它们还在稳步增长。Docker不再是唯一使用的运行时。他们正在社区中成长,社区正在慢慢地分享如何使用Docker之外的其他东西的知识。Kelsey Hightower——从CRI-O到containerd再到gVisor,多年来一直在努力更新他的Kubernetes(坦白说,这是一项了不起的工作)。社区里所有的酷孩子都不再使用Docker作为底层运行时。现在有许多其他的选择,比如clearcontainers[3]、katacontainers[4],并且这个列表还在不断地增长。

大多数人(包括我自己)都不具备足够的知识和专业技能,不知道如何将运行时切换到他们想要的运行时,通常只是使用默认的开箱即用的运行时。当人们明白他们可以很容易地选择更换容器运行时,并且知识是现成的、容易获得的,我认为我们没有任何理由再使用Docker,因此Docker作为一种技术和一家公司会慢慢消失。与Docker所能提供的相比,即将出现的其他容器运行时将更快、更安全、更智能、功能更丰富(其中一些已经如此)。如果你有一个更好、更智能、更安全的产品——为什么人们会继续使用不再适合他们日益增长的需求的技术呢?

对Docker来说,为了避免这种结果,我建议投入尽可能多的精力,为任何工作负载创建最好的运行时,这样Docker仍然是每个人使用的事实上的标准。这里有个问题是,容器运行时没有钱,Docker从来没有在运行时赚钱,他们在容器运行时之上和之上的企业特性中寻找收入。他们将如何解决这个问题,超出了我以及这篇文章的范围。

Docker社区群体一直在稳步下降,受欢迎程度一直在下降,新特性和公告的数量也在下降,而且在过去一两年中一直在下降。

前段时间有人告诉我,说坏话或者告诉别人坏消息通常很容易。我们可以很容易地说这是错的,这没有用,这应该改变。但是如果没有提供一个积极的转折,你就会变成一个悲观的人。“死神”,别做那样的人。

我想听听他们的建议,并在此基础上补充一点,这对你今天意味着什么。你应该开始投资于理解这些其他运行时如何帮助你,在它们合适的地方,增加你的知识和专业技能,这样你就可以做好准备,当其他人停止使用Docker时,你会发现自己不得不匆忙地调整所有的基础设施。我认为这是不可避免的。

以上就是我8个月前想写的帖子……

促使我今天完成这篇文章的是Scott Mccarty的一篇文章——关于即将到来的RHEL 8 beta版——Enterprise Linux 8 beta版:一套新的容器工具[5]——以及我随后发布的Twitter:


瞧吧,RHEL 8不再有Docker可用了。

如果你是一个容器老手,你可能已经养成了通过安装Docker包来定制系统的习惯。在你全新的RHEL 8 Beta系统中,你可能要做的第一件事就是去找你的老朋友yum。你将尝试安装Docker包,但是没有成功。如果你很聪明,接下来,你会搜索并找到这个包:

  1. podman-docker.noarch : "package to Emulate Docker CLI using podman."


这个Podman是什么?Docker包被容器工具模块替换,该模块由Podman、Buildah、Skopeo和其他几个小部件组成。这句话里包含了很多新名字,让我们来看张图。

图片来源:Doug Tidwell(https://youtu.be/bJDI_QuXeCE)

我想,此图胜过千言万语了。

请自由地分享这篇文章,并在Twitter[6]上与我分享你的反馈。

相关链接:

  1. https://twitter.com/maishsk/status/1019115484673970176

  2. http://www.opencontainers.org/

  3. https://github.com/clearcontainers/runtime

  4. https://katacontainers.io/

  5. https://www.redhat.com/en/blog/red-hat-enterprise-linux-8-beta-new-set-container-tools

  6. https://twitter.com/maishsk


原文链接:https://technodrone.blogspot.com/2019/02/goodbye-docker-and-thanks-for-all-fish.html


基于Kubernetes的DevOps实践培训


基于Kubernetes的DevOps实践培训将于2019年5月10日在上海开课,3天时间带你系统掌握Kubernetes,学习效果不好可以继续学习。本次培训包括:容器特性、镜像、网络;Kubernetes架构、核心组件、基本功能;Kubernetes设计理念、架构设计、基本功能、常用对象、设计原则;Kubernetes的数据库、运行时、网络、插件已经落地经验;微服务架构、组件、监控方案等,点击下方图片查看详情。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/32039
 
421 次点击