> docker is just slightly further along the spectrum than Xen: instead of using a special guest kernel, you use the host kernel. Instead of paravirtualisation ops, you use a combination of cgroups and lxc containers. Without the direct virtualisation of hardware devices, you don’t need the various special drivers to get performance, but there are also fewer security guarantees.
No. People seem to be really confused about this. Docker is a container standard, not a virtualization system. The thing you can download on the Docker website, besides being a toolchain for creating containers, is a reference target for containers to deploy to, which just happens to (currently!) use cgroups and lxc and aufs overlays.
The point of Docker is to create one thing (basically a container file format + some metadata stored in a "container registry") that you can deploy to all sorts of different places, without changing what's inside it. In fact, one of the goals of Docker is precisely that the reference target (cgroups+lxc+aufs) could be entirely swapped out for something else in the next version of the Docker toolchain, and none of your containers would have to change.
Docker containers will be deployable as Vagrant boxes, Xen VMs, AWS instances, whatever. Targets that have an overlay filesystem will use overlays; targets that don't will build a flattened filesystem image from the container stack. Targets that have paravirtualization will rely on their host kernel; targets that don't will rely on the kernel in the container's base image. And so forth. It isn't possible yet, but that's the entire goal here.
No. People seem to be really confused about this. Docker is a container standard, not a virtualization system. The thing you can download on the Docker website, besides being a toolchain for creating containers, is a reference target for containers to deploy to, which just happens to (currently!) use cgroups and lxc and aufs overlays.
The point of Docker is to create one thing (basically a container file format + some metadata stored in a "container registry") that you can deploy to all sorts of different places, without changing what's inside it. In fact, one of the goals of Docker is precisely that the reference target (cgroups+lxc+aufs) could be entirely swapped out for something else in the next version of the Docker toolchain, and none of your containers would have to change.
Docker containers will be deployable as Vagrant boxes, Xen VMs, AWS instances, whatever. Targets that have an overlay filesystem will use overlays; targets that don't will build a flattened filesystem image from the container stack. Targets that have paravirtualization will rely on their host kernel; targets that don't will rely on the kernel in the container's base image. And so forth. It isn't possible yet, but that's the entire goal here.