Docker与Mirage OS之类的exokernal方法有什么关系?
Docker与MirageOS之类的exokernal方法有什么关系?
有关MirageOS的一些信息,请参阅:
- http://www.xenproject.org/developers/teams/mirage-os.html
- http://www.se-radio.net/2014/05/episode-204-anil-madhavapeddy-on-the-mirage-cloud-operating-system-and-the-ocaml-language/
- http://openmirage.org (官方网站)
这是非常不同的。
Mirage有效地在虚拟机上运行应用程序,并将其剥离,只留下应用程序所需的系统部分。 结果是只需要虚拟机pipe理程序的非常小的虚拟机就可以运行。 每一台机器都是一台独立的机器,与虚拟机一样与所有其他机器相隔离。
Docker通过使用联合文件系统尽可能地共享来节省资源。 图中至less还有一个全尺寸的操作系统,但它在使用该基本映像的所有容器之间共享。 所有的容器都在一个主机操作系统中运行,并且使用诸如容器和命名空间之类的Linux机制而不是独立的虚拟机相互隔离。
这篇Linux新闻文章中有一个很好的例子,说明了Docker和虚拟机之间的区别。 Mirage采取的方法是使虚拟机(左图)非常小。
总之: 幻影缩水; Docker股票 。
免责声明 :我不知道exokernels的概念,只是在维基百科上阅读它们。 但是我知道Docker,这就是我如何把它放在一起。
Exokernels提供尽可能less的抽象。 它们使得应用程序可以直接与机器的硬件进行通信。 见http://en.wikipedia.org/wiki/Exokernel 。
在另一个网站上的Docker是完全相反的。 它是在现有操作系统之上构build的另一个抽象。 因此,Docker不仅抽象硬件(使用Linux),还通过在不同的机器上提供相同的环境(例如,您可以在CentOS机器上运行Ubuntu容器)来抽象操作系统。
所以我会说Docker与exokernels非常相反。 它的目的是要抽象得多,而外核似乎是相反的,尽量less抽象。
我没有看到两者之间的进一步关系。
- Docker镜像的操作系统 – 风味
- Kubernetes:将Pod Id和部署ID发送到Docker
- 在CoreOS的docker ubuntu cron不能运行,有趣的行为
- Docker端口映射:三方握手,尽pipe没有任何听力
- 为什么Docker会运行这么多的进程来映射端口到我的应用程序?
- AWS ECS Docker – nginx:没有在上游find主机
- Docker:错误创buildaufs挂载到/ var / lib / docker / aufs / mnt / 15396ee0f38d161382f104e11c94b6ca0efafe10f9952e1dfba4f548009fbe59-init:无效参数
- 如何在Vagrant中提供Docker镜像?
- 如何在kubernetes中传递docker选项–mac-address,-v等?