【问题标题】:What is the moby runtime?什么是 moby 运行时?
【发布时间】:2019-11-15 04:01:14
【问题描述】:

目前正在学习 docker 和容器化,我对“moby 运行时”这个术语感到有些困惑。

就我的理解而言,整个 docker 已被拆分为多个库/工具/组件,允许开发人员使用 moby 运行时构建自己的 docker 版本。

这个假设正确吗?

moby 运行时和 e.g. 之间的关系到底是什么?如果我使用官方 docker 页面,我在 Windows 机器上下载的桌面版 docker?

为什么微软使用 moby 运行时来运行一些服务,比如 IoT Edge,而不是官方的 docker build?他们是否使用自定义版本的 docker?

【问题讨论】:

    标签: linux docker containers runtime moby


    【解决方案1】:

    是的,我认为你的理解是正确的。

    来自official web site

    Moby 是 Docker 创建的一个开放框架,用于组装专门的容器系统,而无需重新发明轮子。它提供了一套由数十个标准组件组成的“乐高积木”,以及一个将它们组装成定制平台的框架。 Moby 的核心是一个组装专用容器系统的框架,它提供:组件、工具、程序集。

    它还说:

    建议任何想要组装基于容器的系统的人使用 Moby:想要自定义或修补其 Docker 构建的黑客。

    下一个图表可能会让你更清楚:

    从这里你可以看到,你可以像Docker CEDocker EE一样基于moby项目开始你自己的项目。而here 是一篇好文章,我认为解释清楚。还有this来自官方的一些关系的回应。

    【讨论】:

      【解决方案2】:

      Moby 是 Docker 中一个过度使用的名称。除了作为他们的吉祥物之一的名字(Moby 是您经常在徽标中看到的蓝鲸)之外,Moby 是:

      1. Docker 提供给社区的上游开源项目。这使得 Docker 的封闭源代码部分和带有 Docker 商标的部分分离。您可以在他们的Github repositories 中查看这些项目。您可以像将 Fedora 视为 RedHat 的上游一样看待 Moby 项目,Docker 在 Moby Project 存储库中进行大部分开发,并从那里使用 Docker 名称打包特定版本,您将其视为 Docker CE 和 Docker EE .有些项目可能永远存在,但 Docker 也努力将这些项目进一步向上游移动,由外部组织管理,例如containerd 和 notary 都已移交给 Linux 基金会。

      2. 以前是 docker/docker 的存储库名称,现在移动到 moby/moby。这是docker引擎的核心。

      3. 是使用LinuxKit打包的虚拟机。此 VM 是运行 docker 容器的最小环境,非常适合在您不想管理 VM 本身的桌面和嵌入式环境中运行。

      后者很可能是您所想到的“Moby Runtime”。在 Windows 或 Mac 环境中运行 Linux 容器需要一个虚拟机(docker 容器依赖于许多不容易模拟的内核功能)。您甚至可以在LinuxKit examples 中查看构建类似 VM 的示例。该虚拟机内部是本地安装在 Linux 主机上的同一个 Docker CE 引擎。而VM本身是由Docker构建和维护的。

      【讨论】:

      • 谢谢@BMitch 现在更清楚了。是否有任何关于 moby 工具的文档,或者您应该自己阅读源代码?我也无法从自述文件中得到太多
      • @EfratLevitan 我不确定“Moby 工具”指的是哪一个。很久以前,“moby/tool”存储库本身被合并回 LinuxKit。对于 Moby VM 映像,只有示例文件和 LinuxKit。我相信 Docker Desktop 的实际虚拟机是闭源的。
      猜你喜欢
      • 2011-04-23
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      • 2011-03-03
      • 2011-02-15
      • 2011-04-12
      • 2020-04-30
      • 2011-09-29
      相关资源
      最近更新 更多