背景

在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. BOM基础(二)

    跟DOM一样,BOM其实也是由很多的API组成. 不过对于BOM来说,最痛苦的不是不记得API,而是明明记得这个这个API,却没有考虑到它的兼容性. 之前的文章中讲到了offset系列的属性,他的宽高 ...

  2. [LeetCode]Spiral Matrix 54

    54.Spiral Matrix Given a matrix of m x n elements (m rows, n columns), return all elements of the ma ...

  3. JavaScript数据结构——栈的实现

    栈(stack)是一种运算受限的线性表.栈内的元素只允许通过列表的一端访问,这一端被称为栈顶,相对地,把另一端称为栈底.装羽毛球的盒子是现实中常见的栈例子.栈被称为一种后入先出(LIFO,last-i ...

  4. linux codeblocks汉化

    参考window汉化codeblocks,linux下有点麻烦,就是要找到codeblocks的文件安装在哪里.一般来说,linux下安装的软件大都在/usr/share/文件夹下,所以进入/usr/ ...

  5. 从Visual Studio看微软20年技术变迁

    前言 这个世界从来都不缺变革,从工业革命到晶体管和集成电路,从生活电器到物联网,从简陋人机到精致体验,我们在享受技术带来的便捷的同时,也在为复杂设计而带来的挑战和生产力下降而痛并快乐着.而迫切期盼的, ...

  6. node.js 基础知识之 querystring.stringify querystring.escape

    序列化   1.  querystring.stringify({name:'chenshuai',ago:21,job:"web"})    'name=chenshuai&am ...

  7. 编写PHP代码总结

    1- 编写模块化代码 良好的PHP代码应该是模块化代码.PHP的面向对象的编程功能是一些特别强大的工 具,可以把你的应用程序分解成函数或方法.你应该尽可能多的从你的应用程序的服务器端分开前端的HTML ...

  8. 强大的版本管理工具 Git

    Git 简介 git 是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.是 linux 创始人 Linus Torvalds 为了帮助管理 linux 内核开发而开发的一个开 ...

  9. Tomcat 优化和性能监测

    1. JVM 优化(Tomcat 启动行参数) Linux 修改 catalin.sh Windows 修改 catalin.bat   Linux系统中tomcat的启动参数 export JAVA ...

  10. 老李推荐:第14章7节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-获取版本号 2

    代码先是发送”LIST”命令到ViewServer列出所有的打开的窗口,然后把每个窗口都保存起来.342行起按照源码的注释解析就是说:从协议版本3以后开始加入了窗口自动更新的功能,但是在此之前,如果用 ...