Docker与像MirageOS这样的外部方法有什么关系?
有关MirageOS的一些信息,请参见:
- http://www.xenproject.org/developers/teams/mirage-os.html
- http://www.se radio.net/2014/05/episode - 204阿尼尔- madhavapeddy - - -海市蜃楼-云-操作系统- - - - - ocaml language/
- http://openmirage.org(官方网站)
这是非常不同的。
Mirage有效地将应用程序放在虚拟机上,并将其剥离,只留下应用程序所需的系统部分。结果是一个非常小的VM,只需要一个管理程序来运行。每一个都是独立的机器,就像虚拟机一样与其他机器隔离。
Docker通过使用联合文件系统共享尽可能多的资源来节省资源。图中仍然至少有一个完整大小的操作系统,但是它在使用该基本映像的所有容器之间共享。所有的容器都在单个主机操作系统中运行,并且使用Linux机制(如容器和名称空间)彼此隔离,而不是在单独的vm中。
这篇Linux News文章很好地说明了Docker和VM之间的区别。Mirage采用的方法是使vm(在左图中)非常小。
简而言之:幻影收缩;码头工人股票 .
免责声明:我不知道exokernels的概念,只是在Wikipedia上读到它们。但是我了解Docker,这就是我将它们组合在一起的方式。
Exokernels提供尽可能少的抽象。它们使应用程序与机器的硬件直接通信成为可能。参见http://en.wikipedia.org/wiki/Exokernel。
Docker在另一个站点上是完全相反的。它是建立在现有操作系统之上的另一个抽象。所以Docker不仅抽象了硬件(通过使用Linux),它也抽象了操作系统,通过在不同的机器上提供相同的环境(例如,你可以在CentOS机器上运行一个Ubuntu容器)。
所以我要说Docker与exokernels是截然相反的。它的目标是抽象更多,而exokernels似乎走了另一条路,试图尽可能少地抽象。
我看不出两者之间有什么进一步的关系。