Docker改名啦?什么是 Moby Project

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: DockerCon上最大的新闻莫过于Solomon Hykes宣布Moby项目了,这也在网上引发了轩然大波,关切和争论纷至沓来。本文将介绍Moby项目的细节以及它和Docker产品之间的关系

14930502792289

DockerCon上最大的新闻莫过于Solomon Hykes宣布Moby项目了,这也在网上引发了轩然大波,关切和争论纷至沓来,一些所谓“解读”也更加让人困惑。

简而言之,Docker公司决定将软件产品“Docker”和开源项目“Docker”区分开来。Moby Project项目将作为开源项目的新名称,它包含了一系列公共开源组件,用于组装专门的容器系统。Moby将由开源社区的开发者共同维护。而Docker公司会基于Moby构建Docker社区版(CE)和企业版(EE)等软件产品。

对于使用Docker社区版/企业版的用户,此次不会有任何的影响。这次变更主要针对Docker的原有开源开发流程和基础组件。

Project Moby的官网包含很多官方解读,https://mobyproject.org/DockOne刊载了一个不错翻译的文稿

在Twitter上,Solomon用手绘解释 Project 项目的基本概念

IMG_2498

Moby是由Docker创建的一个开源框架,用来组装专门的容器系统,而无需开发者重新发明轮子。Docker社区版会基于Moby构建,而且Docker社区版将作为Docker企业版的上游代码基础。

IMG_2499

Moby项目将提供工具可以将标准组件库像“乐高积木”那样组装成定制的容器框架,可以支持各种使用容器的场景,从云端到IoT设备。一个名为Moby Origin的参考组装品,会作为Docker容器平台的开源基础。DockerCon上,Rolf Neugebauer演示了多个例子,其中包括利用Moby构建一个OS镜像来在Google云上部署Kubernetes。

在Solomon的解读中,Moby和Docker在逻辑上就像像 Fedora 开源项目和 Red Hat Enterprise Linux 的关系

然而为什么这次更名,引发了如此广泛的争论?

首先,Docker公司将限制“Docker”名称的使用范围,Docker作为Docker公司的注册商标,只能被用于Docker的产品(比如社区版、企业版、Docker Hub、Docker Store等)。

其次,Solomon直接将开源 Docker 代码仓库地址迁移成为 https://github.com/moby/moby,这导致了整个开发流程的变化。连 Solomon 本人后来也承认这次变更与用户之间进行的沟通做的不够,他表示:“我发现我此前在pull request中所做的声明不够清楚。对此我感到非常抱歉。”

在我的理解中,Docker公司有权利定义“Docker”名称的含义、使用范围和选择自己的商业化模式,然而如果此次变更以较为稳妥的方式迁移的话,会减少很多不必要的纷扰和困惑。

从积极的角度上来看,Docker公司将继续推动Docker技术的组件化和开放性,从向Linux和CNCF基金会贡献runc到containerd,到今天将Project Moby交给开发者社区主导。一个初创公司已经为容器开源社区做出了众多贡献,而且我们可以预见更多有创意的容器应用可以从开放的社区中孕育出来。

在DockerCon上,Solomon的一个段子引发全场欢笑:Docker一直以来在采用“Complaint driven” (抱怨驱动)的方式进行开发,Docker团队持续不断地修复开发者对Docker的抱怨,而这个过程将无穷循环下去。期待这次Docker团队能够听到开发者的声音,真正实现建立Project Moby的愿景。

最后还是用官方架构图再次澄清一下什么是Moby,它和Docker产品的关系吧
IMG_2497

目录
相关文章
|
5天前
|
Java Go 开发者
Docker容器技术简介及其与Go语言的结合点
【2月更文挑战第23天】本文首先概述了Docker容器技术的核心概念和优势,接着探讨了Go语言与Docker容器技术的结合点。通过阐述Docker的轻量级、可移植性和版本控制等特性,以及Go语言在容器化应用中的优势,本文旨在说明两者结合能够实现更高效、灵活的应用开发和部署。
|
6天前
|
Oracle 关系型数据库 数据库
|
15天前
|
开发者 Docker Python
深入浅出:使用Docker容器化部署Python Web应用
在当今快速发展的软件开发领域,Docker作为一个开放平台,为开发者提供了将应用打包在轻量级、可移植的容器中的能力,从而简化了部署和管理应用程序的复杂性。本文将通过一个简单的Python Web应用示例,引导读者理解Docker的基本概念、容器化的优势以及如何使用Docker来容器化部署Python Web应用。我们将从零开始,逐步探索创建Dockerfile、构建镜像、运行容器等关键步骤,旨在为读者提供一个清晰、易于理解的指南,帮助他们掌握使用Docker容器化部署应用的技能。
|
1天前
|
JavaScript Shell Docker
|
5天前
|
Kubernetes Go 开发者
Go语言与Docker容器结合的实践应用与案例分析
【2月更文挑战第23天】本文通过分析实际案例,探讨了Go语言与Docker容器技术结合的实践应用。通过详细阐述Go语言在容器化环境中的开发优势,以及Docker容器技术在Go应用部署中的重要作用,本文旨在为读者提供Go语言与Docker容器结合的具体实现方法和实际应用场景。
|
6天前
|
应用服务中间件 Docker 容器
在Docker容器和主机之间复制文件/文件夹
在Docker容器和主机之间复制文件/文件夹
21 0
|
6天前
|
Ubuntu Shell 开发者
Docker容器管理
Docker容器管理
13 0

相关产品

  • 容器镜像服务
  • 容器服务Kubernetes版