背景

在DockerCon17上,Docker发布了两个新的开源项目LinuxKitMoby。而原来在Github上托管的docker也随着PR #32691的合入正式变为Moby。这究竟是什么情况?本文从Docker官方能够获取到的信息出发,让真相大白。

介绍

Docker官方已经正式发布了Moby项目的介绍:INTRODUCING MOBY PROJECT: A NEW OPEN-SOURCE PROJECT TO ADVANCE THE SOFTWARE CONTAINERIZATION MOVEMENT

文章的标题直接阐明了Moby的意义:一个致力于推进软件容器化运动的开源项目

下面是官博上这篇文章我的译文,可供参考。

译文

从四年前Docker推广普及软件容器开始,围绕容器化的整个生态圈也随之蓬勃成长,并在这期间经历了两个不同的阶段。在这两个阶段中,用于生产容器系统的木星也在不断地演变进化以适应社区、项目以及贡献者生态圈的数量规模与需求。

Moby是个致力于推进软件容器化运动的开源项目,它提供一个组件库,一个将组件装配成定制化基于容器的系统的框架和一个所有容器发烧友试验与交流想法的场所。

让我们来回顾一下我们是如何走到今天的。在13-14年,(容器化运动)先驱者们使用容器在庞大的开源库如Docker何一些其它项目合作以帮助工具成熟起来。

在15-16年,容器被大规模应用到原生云应用。在这个阶段,凭借成败上千的容器生态项目与贡献者,用户社区规模成长到足以支撑大量的部署。正是在这个阶段,Docker将它的生产模型演进为一个基于开放式组件的解决方案。通过这样的方式,我们扩大了创新与协作的范围。

一些新颖而独立并且帮助合作方与用户社区生态的Docker组件项目正在迅速崛起。在这期间,我们将组件从Docker源码库中抽取并迅捷地创新,系统制作者可以独立地使用它们来构建自己的容器系统:runc, HyperKit, VPNKit, SwarmKit, InfraKit, containerd等等。

处在容器浪潮之巅,我们看到2017年的趋势是容器已然成为主流,在计算、服务器、数据中心、云、桌面应用、物联网和移动等领域广泛传播,包括各行业和垂类市场:金融、医疗、政府、旅游、制造业,以及各用例:现代手机端应用、传统服务端应用、机器学习、工业控制系统、机器人。对于容器生态圈的新人,他们的共同点在于他们针对特定的基础设施、行业或者用例构建了自己特有的系统。

作为一家公司,Docker使用开源作为自己的开源实验室与整个生态圈进行合作。Docker的成功与容器生态圈的成功密不可分:生态圈成功,我们也即成功。因此,我们一直在规划者容器生态圈发展的下一个阶段:什么样的生产模型可以帮助我们扩展容器生态圈来实现让容器成为主流的承诺?

去年我们的客户开始寻求如Mac和Windows桌面、Windows服务器和例如AWS、Microsoft Azure或是Google Cloud Platform等一系列Linux之外的Docker解决方案。我们创建了一系列针对这些平台的Docker发行版。为了能够在相对比较短的时间内以小团队用一种可扩展而不重复造轮子的方式构建交付这些Docker版本,我们显然需要一种新的途径。借鉴汽车行业的装配重用组件以制造不同汽车的想法,我们的团队需要不仅在组件上,还需要在组件装配上进行协作。

我们认为在生态圈这一层进行组件组装的协作是将容器生态圈扩展到下一个高度以实现容器即主流的最佳方式。

为了实现这一心层次的合作,我们现在宣布Moby项目——一个致力于推进软件容器化运动的开源项目。它提供了一套组件的“乐高积木”,一个将组件装配成定制化基于容器的系统的框架和一个所有容器发烧友试验与交流想法的场所。把Moby想象成容器系统的“乐高俱乐部”吧。

Moby由以下几部分组成:

  1. 一个容器化的后端组件库(例如:一个低层builder,日志功能、数据卷管理、网络、镜像管理、containered、SwarmKit)

  2. 一个可以将这些组件装配成独立的容器平台并协助构建、测试、部署构件的框架

  3. 一个叫Moby Origin的参考——它是Docker容器平台的开放基础,同时也是使用来自Moby库或是其它项目的组件的容器系统样例。

Moby是为系统构建者——想构建自己的基于容器的系统的人设计的,而不是使用Docker或者其他容器平台的开发者。Moby项目的参与者可以选择派生自Docker的组件库,也可以“bring your own components(自带组件)” (BYOC),打包成可以混合搭配其他组件的容器来创建定制化的容器系统。

Docker使用Moby项目作为开放的研发实验室,用于试验、开发新组件并与生态圈就未来容器技术进行合作。我们所有的开源合作都会迁移到Moby项目。Docker现在、将来都一直会是一个可以让你构建、传播、运行容器的开源项目。从用户角度来说,一切都没有发生变化。用户可以继续在docker.com上下载Docker。关于更多信息,请参考more information about the respective roles of Docker and Moby on the Moby website

请加入我们,通过组件与组装品的合作,一起让软件容器成为主流,扩大我们的生态圈和我们的用户社群到下一个高度。

评析

阅毕这篇官方博文,想比也已经大概了解了Docker与Moby的关系。可以说Moby是Docker之母。通过Moby可以将定制化的组件打包做成一个Docker,而Moby就相当于一个组件仓库与Docker工厂。Docker公司的这一举动可以说也是顺应了潮流,将Docker与操作系统解耦,并且将其以组件组装的形式模块化。可以说今后,操作系统也是Docker容器的一个基础组件。而Moby项目既是一个组件库又是一个框架,为今后组件制作与组装提供了一套规范。

上面的译文贴的来自原文的几张配图也非常有意思,我们也可以从图中理解Moby与Docker的关系。而Moby本身的Logo是一头鲸鱼的尾巴,我认为这个Logo的含义便是:你只看到了那会是Docker大鲸鱼,但是到底会是一头怎样的鲸鱼,便要通过Moby孕育才能看完整了。

当然,这一切对于使用Docker容器进行应用开发的开发者来说,其实关系并不是太大,甚至可以说目前来看几乎没什么影响。

Docker官方仓库上我们可以看到已经写得很清楚:Moby主要针对的人群是想要组装一个基于容器的系统的人,包括

  • 想要定制化Docker构建的hacker
  • 想要构建一个容器系统的系统工程师
  • 想要将已经存在的容器系统适配到自己环境的 基础设施提供方
  • 想要体验最新容器技术的容器爱好者
  • 想要在不同系统中测试项目的开源开发者
  • 任何对Docker内部原理与如何构建感兴趣的人

但对于如下人群,Moby并不适合:

  • 寻求一种简单的在容器中运行应用程序的应用开发者。推荐使用Docker CE。
  • 想要一个带有商业支持且开箱即用容器平台的企业IT与开发团队。推荐使用Docker EE。
  • 任何对容器感兴趣并且寻求一种简单易学的方式的人。请访问docker.com吧。

总结

回到本文标题,Docker改名为Moby了吗?答案已经很明确了,Docker仍然还在,仍然还叫Docker。只是Moby项目已经问世,它是Docker的上游项目,是Docker之母。正因如此,Docker这个名字也已经不适合作为原来源码库的名字了。而对于普通的容器个人使用者或者企业,影响并不是太大。对于一些容器系统厂商和组件提供方,Moby提供了一种新形式的协作平台,可以定制化、增强、适配容器系统等等。

参考

Docker改名为Moby了吗?的更多相关文章

  1. 在CentOS上为Docker开启SELinux

    a { color: #4183C4; text-decoration: none } a:hover { text-decoration: underline } ul,ol { padding-l ...

  2. 容器化-Docker介绍

    导读:本文章对Docker技术进行了介绍,阐述了Docker的技术发展历程.容器与虚拟机的差异.Docker原理.特点.Docker三组件和Docker带来的影响,为我们进一步理解Docker打下基础 ...

  3. Docker学习笔记之Docker 的简历

    0x00 概述 在了解虚拟化和容器技术后,我们就更容易理解 Docker 的相关知识了.在这一小节中,我将介绍关于 Docker 的出现和发展,Docker 背后的技术.同时,我们将阐述 Docker ...

  4. [转载]Docker 完全指南

    Docker 完全指南 原作者地址: https://wdxtub.com/2017/05/01/docker-guide/  发表于 2017-05-01 |  更新于 2017-08-03 |   ...

  5. CentOS 7 安装Docker CE

    本节内容: 背景 Moby项目 安装Docker CE 卸载Docker CE 一.背景 在搭建Registry的过程中,发现使用Docker 1.12版本,在push镜像到Registry时会报错误 ...

  6. .net core 在 Docker 开发下的巨坑

    一,Docker 的安装 Windows 安装  Docker 官方文档: https://docs.microsoft.com/zh-cn/virtualization/windowscontain ...

  7. 极简Docker和Kubernetes发展史

    2013年 Docker项目开源 2013年,以AWS及OpenStack,以Cloud Foundry为代表的开源Pass项目,成了云计算领域的一股清流,pass提供了一种"应用托管&qu ...

  8. 【转帖】极简Docker和Kubernetes发展史

    极简Docker和Kubernetes发展史 https://www.cnblogs.com/chenqionghe/p/11454248.html 2013年 Docker项目开源 2013年,以A ...

  9. Docker容器(一)——Docker的介绍与部署

    (1).Docker概述 Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化.容器是 ...

随机推荐

  1. KoaHub.js是基于 Koa.js 平台的 Node.js web 快速开发框架

    koahubjs KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架.可以直接在项目里使用 ES6/7(Generator Function, Class, A ...

  2. Oracle-orclEXORIM

    imp pzhdb/hiway@orcl file =d:\pzhsd.dmp fromuser = pzhsd touser=pzhdb:导入 第一个pzhdb为新的用户名 hiway为密码 orc ...

  3. CCF 201609-4 交通规划

    问题描述 试题编号: 201609-4 试题名称: 交通规划 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家 ...

  4. Spring Data JPA 实例查询

    一.相关接口方法     在继承JpaRepository接口后,自动拥有了按"实例"进行查询的诸多方法.这些方法主要在两个接口中定义,一是QueryByExampleExecut ...

  5. WinFrom中使用WPF的窗体

    步骤 1.添加WindowsFormsIntegration.dll .System.Windows.Forms.和System.Xaml,PresentationCore.PresentationF ...

  6. 如何用正确的姿势查看 主机系统的CPU信息

    一.关于CPU的几个概念 CPU的作用 计算机中的中央处理单元(CPU)执行基本的计算工作 -- 运行程序.但是,一个单核的CPU同一时间只能一次执行一个任务,为了提高计算机的处理能力,也就出现了多C ...

  7. 关于连接数据库的T-SQL语句中的一种小技巧

    (编程生活中,我们经常会用到数据库.然后在通过T-SQL语句来对数据库进行操作的时候,遇到很多麻烦.话说昨天我就被困扰了一天.明明这个T-sql插数据的语句放在数据库运行的时候没有问题,到了java代 ...

  8. Web移动端的常用组件库

    normalize http://necolas.github.io/normalize.css/ 最受欢迎的css reset 保留有用的默认值,这个区别于其他的CSS resets 标准化大范围的 ...

  9. 快乐Node码农的十个习惯 转

    从问世到现在将近20年,JavaScript一直缺乏其它有吸引力的编程语言,比如Python和Ruby,的很多优点:命令行界面,REPL,包管理器,以及组织良好的开源社区.感谢Node.js和npm, ...

  10. Centos6.8 安装 nginx

    rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm ...