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

1.4k views Asked by At

Could you pls help me to understand how VMWare VIC actually works?

I'm familiar with Docker, and has very basic overview of CoreOS. Docker is your environment container which increase your app portability, whereas CoreOS is very lightweight Linux system, which has a bare minimum to launch Docker container.

In other hand, there are lots of virtual machines (e.g. VMWare), which are so heavy that humanity had to invent Docker. The only VM's benefit over Docker is that it's more secure.

Questions:

  1. So why trying to put Docker inside virtual machine? In other words, why do you need VIC?
  2. How can virtual machine be "small"? Isn't it a container than?
  3. Why do you need additional layer like Photon OS? Why not just start Docker instances directly from VM. Docker inside OS, OS inside VM sounds like an overhead?
1

There are 1 answers

2
Milan Baran On

I've played with VIC for sometime and I try to answer your question.

  1. Lets imagine VIC as a docker daemon you can send commands like ps,run etc Usually VIC has lots of resources assigned. When VIC receive a run command it will spawn a new VM with demanded profile. You can provide how much memory and cpu should have assigned via docker arguments. The docker runs in this small VM spawned exclusively for the docker container. So it's grated that each container will run in its own VM. When you stop the container the VM is shut down as well. The VIC has implemented all features of docker so far e.g. volumes, network... except exec command.
  2. Well, it's just design that can be considered as an overhead. VIC creates for each container it's own VM which runs the container. I believe this "a hack" to provide old fashioned VMware tools for docker ecosystem.
  3. Definitely, this is an overhead, but it's nothing significant I suppose. You can have a look into Photon Controller which should be the product without the additional layer. But it has not support for VMware tools yet.

I'd would say it has some pros and cons:

PROS:

  • VIC spawns new VM automatically with desired cpu and mem profiles
  • VIC can be controlled via native docker calls
  • VIC supports other VMware products. Monitoring, storages, networking

CONS:

  • List item
  • VIC has some bugs in docker implementation or its not working the same way as native docker. So its hard to integrate it with others systems like mesos, marathon.
  • VIC supports only 1.23 docker API version
  • VIC doesn't support exec command