【编者按】Docker不再是唯一的容器运行时,地平线上的其他容器运行时将比Docker可以提供的更快、更安全、更智能、功能更丰富(其中一些已经以这种方式提供)).再见,码头工人!谢谢码头工人!感谢所有为容器技术付出和贡献的可爱的人们!早在2018年7月,我就开始写一篇关于Docker作为一家公司即将消亡(也可能是一种技术消亡)的博客文章,但我一直没有完成和发表这篇文章。是时候发表那篇文章了。当然Docker还在这里,每个人都还在使用Docker,并且在不久的将来会继续这样做(到可预见的未来多远-待定)。我为博文选择这个标题是因为在我看来,Docker作为一家公司已经屈指可数,也许作为一种技术也是如此。请允许我花几分钟时间与您分享我的想法。几年前,Docker是一家改变世界的公司,我们可以有把握地说,它今天仍在改变世界。容器和容器背后的技术已经存在多年,早在Docker这个词被想到甚至变成动词(“容器化”所有应用程序)之前很久,但Docker是鼓励大众消费技术的公司。容器以简单、方便和时尚的方式存在。大多数技术公司(或者至少是那些自认为是现代技术公司的公司)将使用Docker或容器作为其产品或管道的一部分,因为它非常有意义并为整个流程带来如此多的好处。在过去的12-24个月里,人们逐渐意识到Docker已经走到了尽头,作为一种技术,他们将无法为今天的产品提供额外的价值,并决定从其他地方寻找额外的优势。Kubernetes赢得了容器编排战争,我认为没有人否认这一事实。Docker本身也采用了Kubernetes。总会有针对DockerSwarm、Mesos、Marathon和Nomad的特定用例的利基玩家,但事实上的标准是Kubernetes。所有3家大型云提供商现在都有一个托管的Kubernetes解决方案,可以提供给他们的客户(并且最终将逐步淘汰他们多年来开发的自制解决方案,因为只有一个)。每个云服务提供商都在构建更多服务并提供更多解决方案,以吸引更多客户并增加他们的收入。故事到此结束,没什么可看的。接下来是闪亮的东西。目前,Kubernetes使用Docker作为底层容器引擎。我认为Kubernetes社区了解Docker作为容器运行时(我专门使用该术语)是尽快推出产品的最终解决方案。他们也很早就(并且明智地)认识到他们需要有一个选择,即切换容器运行时的选项,并最终允许Kubernetes的消费者做出选择。OpenContainersInitiative带来了运行时规范,它为我们所有人打开了使用Docker以外的东西作为运行时的大门。而且他们正在稳步增长。Docker不再是唯一使用的运行时。他们在社区中成长,社区也在慢慢分享如何使用Docker以外的东西的知识。KelseyHightower-从CRI-O到containerd再到gVisor,多年来一直致力于更新他的Kubernetes(坦率地说,这是一项了不起的工作)。社区中所有的酷孩子都停止使用Docker作为底层运行时。现在还有许多其他选项,例如clearcontainers、katacontainers,而且这个列表还在不断增加。大多数人(包括我自己)没有足够的知识和专业知识来知道如何将运行时切换到他们想要的运行时,并且通常只使用开箱即用的默认运行时。当人们明白他们可以很容易地选择改变容器运行,并且知识已经准备好并且随时可用时,我认为我们没有任何理由再使用Docker,因此Docker作为一种技术和一家公司将慢慢消失。即将出现的其他容器运行时将比Docker可以提供的(其中一些已经提供)更快、更安全、更智能且功能更丰富。如果您有更好、更智能、更安全的产品——为什么人们会继续使用不再满足他们不断增长的需求的技术?对于Docker,为了避免这种结果,我建议尽可能多地投资,努力为任何工作负载创建最佳运行时,Docker仍然是每个人使用的事实标准。这里的问题是容器运行时没有钱,Docker从来没有在运行时赚钱,他们在容器运行时之上和之上的企业功能中寻找收入。他们将如何解决这个问题超出了我和本文的范围。Docker社区群一直在稳步下滑,知名度一直在下降,新功能和公告的数量也在下降,而且最近一两年一直在下降。前段时间有人告诉我,说坏话或给人坏消息往往很容易。我们可以很容易地说这是错误的,这是行不通的,应该改变。但如果不提供积极的转折,你就会变成悲观主义者。“死神”,不要做那种人。我想听听他们的建议,并补充说这对您今天意味着什么。你应该开始投资了解这些其他运行时如何帮助你,以及它们适合的地方,增加你的知识和专业知识,这样当其他人停止使用Docker并且你发现自己不得不匆忙调整所有基础架构时,你可以做好准备。我认为这是不可避免的。这就是我8个月前想写的帖子的全部内容……让我今天完成这篇帖子的是斯科特·麦卡蒂(ScottMccarty)的一篇文章——关于即将推出的RHEL8beta——EnterpriseLinux8beta:一套新的容器工具——以及我随后的推文:瞧,RHEL8不再有Docker。如果您是容器老手,您可能已经养成了通过安装Docker包来定制系统的习惯。在您全新的RHEL8Beta系统上,您可能做的第一件事就是转到您的老朋友yum。您将尝试安装Docker包,但没有成功。如果你很聪明,接下来,你搜索并找到这个包:podman-docker.noarch:“使用podman模拟DockerCLI的包。”这个Podman是什么?Docker包被容器工具模块取代,该模块被Podman、Buildah、Skopeo和其他几个小部件使用。译者:lzc先生,软件工程师,DevOpsDays深圳核心组织者,目前就职于华为,从事云存储,以CloudNative方式构建云文件系统服务,关注Kubernetes、容器、微服务。
