It's just one level of abstraction up. First the hardware was abstracted, and now the OS is abstracted. Once we can reliably and seamlessly shift applications (not VMs) around generic pools of compute resources, to coin a phrase, you're going to see some serious shit!
Interesting times we live in.
Pair that with all the hw acceleration for virtualization available these days and you may get some pretty lean and fast virtualization that also more easily support hybrid deployments (Container software needs to be built for specific container host OSs and libs(depending on how much is bundled in each container)).
Also, the security implications of containers vs (para)-virtualization are different, so I think my personal jury's still out on that one too.
But I do agree that these are interesting times, for sure. And containers may win, I just don't think it's a done deal just yet. :)
However, let's not forget that Solaris had this functionality first.
Solaris has offered hypervisor-level virtualization (LDOMS) on SPARC, light-weight "virtualization" (Containers/Zones) on SPARC/x86, and now offers full system virtualization out of the box (Kernel Zones) SPARC/x86.
And there's also OpenStack and Puppet system management integration in Solaris 11.2+.
Not if lighweight easily-manage containers can run Windows. Not just windows but any non-matching-with-host-kernel OS-es so nobody is eating VMWare's lunch yet.
I think the only ones that really ran with KVM were/are Joyent with their Smart OS - combining (some of the) tooling/tech that makes Solaris Zones great with a Free and Open operating system, freedom from Sun/Oracle and support for many guest platforms (and/or low overhead "native" zones).
I think the only real downside of Smart OS is the same as with Open Solaris (or pretty much any other "it isn't Linux"-unix-like OS'): drivers and hw support.
The great thing with Linux as a host, is that (edge cases excepted) you can literally run in on your entire infrastructure (right now, or in the near probable future) -- from phones and tablets via desktops and laptops through servers, clusters and pretty much anything beyond.
I'm sure we'll see some backlashes from the new monoculture, but I think overall it's a bright future.
And we can have our occasional parties arguing for why everyone should really use (Dragonfly|Free|Open)BSD/(Open)Solaris/Plan9 because it has X, does Y better and has more consistent and better documentation.
KVM is a full hypervisor. It can run Linux, Windows, OSX, Solaris, etc.
Docker on Linux can run Linux. It can do it with less overhead and higher performance than KVM.
EDIT: This used to be their recommended way of making apps: http://arstechnica.com/information-technology/2009/08/quickl...
- Google is bringing kubernetes (k8s) which represents their experience in deploying cluster wide applications
- CoreOS is bringing etcd to the table for the cluster wide decisions in k8s
- Docker is bringing a format that makes getting your applications isolated and running quickly
http://mesosphere.io/2014/07/10/mesosphere-announces-kuberne...
PS. Corrections welcome, I'm just trying to help people get a grasp without bothering with the background reading.