Pet*_*ake 6

这是非常不同的.

Mirage有效地将应用程序放在虚拟机上并将其剥离,以便仅留下应用程序所需的系统部分.结果是一个非常小的VM,只需要一个虚拟机管理程序即可运行.每个人都是一台独立的机器,与其他所有机器隔离,就像VM一样.

Docker通过使用union文件系统尽可能多地共享来节省资源.图中仍然至少有一个完整大小的操作系统,但它在使用该基本映像的所有容器之间共享.所有容器都在单个主机操作系统内运行,并使用容器和命名空间等Linux机制彼此隔离,而不是在单独的VM中.

在这篇Linux新闻文章中,可以很好地说明Docker和VM之间的区别.Mirage采用的方法是使VM(在左侧图片中)非常小.

简而言之:幻影缩小; Docker股票.


Tho*_*rig 4

免责声明:我不知道外核的概念,只是在维基百科上读到了它们。但我了解 Docker,这就是我将其组合在一起的方式。

外内核提供尽可能少的抽象。它们使应用程序可以直接与机器的硬件进行通信。请参阅http://en.wikipedia.org/wiki/Exokernel

另一个站点上的Docker则恰恰相反。它是构建在现有操作系统之上的另一个抽象。因此,Docker 不仅抽象了硬件(通过使用 Linux),还抽象了操作系统,在不同的机器上提供相同的环境(例如,您可以在 CentOS 机器上运行 Ubuntu 容器)。

所以我想说 Docker 与外内核非常相反。它的目标是抽象得更多,而外内核似乎走了相反的路,并尝试尽可能少地抽象。

我看不出两者之间有任何进一步的关系。