Docker如何与像MirageOS这样的exokernal方法相关?
有关MirageOS的一些信息,请参阅:
答案 0 :(得分:6)
非常不同。
Mirage有效地在虚拟机上获取应用程序并将其剥离,只留下应用程序所需的系统部分。结果是一个非常小的VM,只需要一个虚拟机管理程序即可运行。每一台机器本身都是一台机器,与其他所有机器隔离,就像VM一样。
Docker通过使用union文件系统尽可能多地共享来节省资源。图中仍然至少有一个完整大小的操作系统,但它在使用该基本映像的所有容器之间共享。所有容器都在单个主机操作系统内运行,并且使用容器和名称空间等Linux机制彼此隔离,而不是在单独的VM中。
在这个Linux News article中可以很好地说明Docker和VM之间的区别。 Mirage采用的方法是使VM(左图中)非常小。
简而言之: Mirage缩小; Docker分享。
答案 1 :(得分:4)
免责声明:我不知道exokernel的概念,只是在维基百科上阅读它们。但我知道Docker,这就是我将它放在一起的方式。
Exokernels 提供尽可能少的抽象。它们使应用程序可以直接与机器的硬件进行通信。请参阅http://en.wikipedia.org/wiki/Exokernel。
另一个网站上的Docker 则完全相反。它是在现有操作系统之上构建的另一个抽象。所以Docker不仅抽象硬件(通过使用Linux),它还通过在不同的机器上提供相同的环境来抽象操作系统(例如,你可以在CentOS机器上运行Ubuntu容器)。
所以我想说Docker与exokernel非常相反。它的目的是抽象出更多,而exokernel似乎走向另一个方向并试图尽可能少地抽象。
我认为两者之间没有进一步的关系。