VMWare VIC(Photon OS + Docker)vs CoreOS + Docker

你能帮我理解VMWare VIC的工作原理吗?

我对Docker很熟悉,对CoreOS有非常基本的概述。 Docker是您的环境容器,它可以增加您的应用程序的可移植性,而CoreOS是非常轻量级的Linux系统,它最低限度启动Docker容器。

另一方面,也有很多虚拟机(例如VMWare),这些虚拟机非常重,所以人类不得不发明Docker。 唯一的VM比Docker的好处是它更安全。

问题:

  1. 那么为什么要把Docker放到虚拟机里呢? 换句话说,你为什么需要VIC ?
  2. 虚拟机如何“小” ? 这不是一个容器吗?
  3. 为什么你需要像Photon OS这样的附加层? 为什么不直接从VM启动Docker实例? 操作系统内的Docker,虚拟机内部的操作系统听起来像一个开销?

我已经和VIC一起玩过了,我试着回答你的问题。

  1. 让我们把VIC想象成一个docker的守护进程,你可以发送像psrun等命令。通常VIC有很多的资源分配。 当VIC接收到一个运行命令时,它将产生一个新的虚拟机与要求的configuration文件。 你可以提供多less内存和CPU应该通过docker参数分配。 docker工人在专门为docker集装箱生产的这个小型 VM中运行。 所以每个容器都会运行在自己的虚拟机上。 当停止容器时,VM也closures。 VIC已经实现了目前为止的docker的所有function,例如卷,networking…除了exec命令。
  2. 那么,这只是devise,可以被视为一个开销。 VIC为每个容器创build运行容器的自己的VM。 我相信这是为docker生态系统提供老式的VMware工具的“黑客”。
  3. 当然,这是一个开销,但是我认为这并不重要。 你可以看看照片控制器应该是没有附加层的产品。 但目前还不支持VMware工具。

我会说它有一些优点和缺点:

优点:

  • VIC使用所需的cpu和memconfiguration文件自动生成新的VM
  • VIC可以通过本地docker控制来控制
  • VIC支持其他VMware产品。 监控,存储,networking

缺点:

  • 项目清单
  • VIC在Docker实现方面有一些缺陷,或者它与本地docker不一样。 所以很难把它与其他系统如马斯松,马拉松结合起来。
  • VIC仅支持1.23dockerAPI版本
  • VIC不支持exec命令