Docker 与 MirageOS 等外核方法有何关联?
有关 MirageOS 的一些信息,请参阅:
Docker 与 MirageOS 等外核方法有何关联?
有关 MirageOS 的一些信息,请参阅:
这是非常不同的。
Mirage 有效地将应用程序放在虚拟机上并将其剥离,只留下应用程序所需的系统部分。结果是一个非常小的虚拟机,只需要一个管理程序即可运行。每台机器本身就是一台机器,就像虚拟机一样与其他所有机器隔离开来。
Docker 通过使用联合文件系统尽可能多地共享来节省资源。图片中仍然至少有一个全尺寸操作系统,但它在所有使用该基本映像的容器之间共享。所有容器都在单个主机操作系统中运行,并且使用容器和命名空间等 Linux 机制相互隔离,而不是位于单独的 VM 中。
这篇Linux 新闻文章很好地说明了 Docker 和 VM 之间的区别。Mirage 采用的方法是使 VM(在左侧图片中)非常小。
简而言之:海市蜃楼缩小;码头工人股份。
免责声明:我不知道外核的概念,只是在维基百科上阅读了它们。但我知道 Docker,这就是我将它组合在一起的方式。
Exokernels提供尽可能少的抽象。它们使应用程序可以直接与机器的硬件进行通信。请参阅http://en.wikipedia.org/wiki/Exokernel。
另一个站点上的Docker则完全相反。它是建立在现有操作系统之上的另一种抽象。所以 Docker 不仅抽象了硬件(通过使用 Linux),它还抽象了操作系统,通过在不同的机器上提供相同的环境(例如,你可以在 CentOS 机器上运行一个 Ubuntu 容器)。
所以我会说 Docker 与 exokernels 完全相反。它旨在抽象更多,而 exokernels 似乎走另一条路并尝试尽可能少地抽象。
我看不出两者之间有任何进一步的关系。