Docker改名啦?什么是 Moby Project

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 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

目录
相关文章
|
13天前
|
NoSQL 关系型数据库 Redis
Docker的通俗理解和通过宿主机端口访问Redis容器的实例
本文目标:引导初学者入门Docker,理解镜像、容器和宿主机概念,学习常用Docker命令,特别是如何创建并从Redis容器通过宿主机端口访问。 关键点: - Docker核心:镜像(类)、容器(实例)、宿主机(运行环境)。 - `docker pull` 拉取镜像,如 `redis:3.0`。 - `docker run -d --name` 后台运行容器,如 `my-redis`。 - `-p` 参数做端口映射,如 `6379:6379`。 - `docker exec -it` 交互式进入容器,如 `bash` 或执行命令。
|
10天前
|
前端开发 安全 数据库
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
|
2天前
|
jenkins 持续交付 开发者
利用Docker容器化部署应用的实战指南
【6月更文挑战第27天】本文详述Docker应用部署,涵盖Docker基本概念、安装、镜像制作及运行。通过编写Dockerfile构建镜像,使用`docker build`、`run`、`push`及`stop`命令管理。集成CI/CD工具如Jenkins,实现自动化构建、测试和部署,提升开发效率与部署质量。Docker助力轻量级、可移植的微服务架构。
|
7天前
|
NoSQL Redis Docker
使用 Docker Compose 接管现有容器的文档
使用 Docker Compose 接管现有容器的文档
21 2
|
9天前
|
Cloud Native 安全 Docker
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
|
7天前
|
存储 关系型数据库 MySQL
解读 MySQL 容器信息:`docker inspect` 字段详解
解读 MySQL 容器信息:`docker inspect` 字段详解
23 1
|
10天前
|
Linux Docker 容器
蓝易云 - net.ipv4.ip_forward=0导致docker容器无法与外部通信
完成以上步骤后,Docker容器应该能够正常与外部通信了。
14 2