【问题标题】:VMWare VIC (Photon OS + Docker) vs CoreOS + DockerVMWare VIC(Photon OS + Docker)与 CoreOS + Docker
【发布时间】:2017-04-28 16:45:50
【问题描述】:
能否请您帮助我了解VMWare VIC 的实际工作原理?
我熟悉 Docker,并且对 CoreOS 有非常基本的了解。 Docker 是您的环境容器,可增加您的应用程序的可移植性,而 CoreOS 是非常轻量级的 Linux 系统,启动 Docker 容器的最低要求。
另一方面,有很多虚拟机(例如 VMWare),它们非常繁重,以至于人类不得不发明 Docker。与 Docker 相比,VM 的唯一优势是它更安全。
问题:
-
那么为什么要尝试将 Docker 放在虚拟机中呢?换句话说,你为什么需要VIC?
- 虚拟机怎么可能是"small"?不是容器比吗?
- 为什么需要像 Photon OS 这样的附加层?为什么不直接从 VM 启动 Docker 实例。 Docker inside OS, OS inside VM 听起来像是开销?
【问题讨论】:
标签:
docker
virtual-machine
vmware
coreos
vsphere
【解决方案1】:
我和 VIC 玩了一段时间,我试着回答你的问题。
- 让我们把 VIC 想象成一个 docker 守护进程,你可以发送诸如
ps、run 等命令 通常 VIC 分配了很多资源。当 VIC 收到运行命令时,它将生成一个具有所需配置文件的新 VM。您可以通过 docker 参数提供应该分配多少内存和 cpu。 docker 运行在这个专门为 docker 容器生成的 small VM 中。所以很高兴每个容器都将在自己的虚拟机中运行。当您停止容器时,VM 也会关闭。到目前为止,VIC 已经实现了 docker 的所有功能,例如卷、网络...除了exec 命令。
- 嗯,这只是可以被视为开销的设计。 VIC 为每个容器创建它自己的运行容器的 VM。我相信这是为 docker 生态系统提供老式 VMware 工具的“黑客”。
- 当然,这是一个开销,但我想这没什么大不了的。您可以查看 Photon Controller,它应该是没有附加层的产品。但它还不支持 VMware 工具。
我会说它有一些优点和缺点:
优点:
- VIC 使用所需的 CPU 和内存配置文件自动生成新 VM
- 可以通过本地 docker 调用控制 VIC
- VIC 支持其他 VMware 产品。监控、存储、网络
缺点:
- 列表项
- VIC 在 docker 实现中存在一些错误,或者它的工作方式与本地 docker 不同。因此,它很难与 mesos、marathon 等其他系统集成。
- VIC 仅支持 1.23 docker API 版本
- VIC 不支持 exec 命令