Docker has recently celebrated two years and based on the Docker OpenStack Wiki page “It is expected the driver will return to mainline Nova in the Kilo release.” The driver let you treat a Docker Linux container in the same way you treat a VM. If you wonder what is the difference between the two then you are asking a good question. A VM is an abstraction of physical hardware while a container is an abstraction performed in the operation system. More about that here. You can have an Ubuntu OS container running inside Fedora or Mac OS X or even Windows 8. Confused? I’ll try to help you with that in this blog post.
What is Docker?
Docker is one kind of a Linux container. You can find more information about LXC and other Linux containers here. Think of a lightweight and isolated software entity running inside your OS and sharing the kernel with it. By isolated I mean a software entity with its own network, users, PID and more. By sharing kernel I mean a software entity that piggybacking (or relying on) the kernel in its host whether it’s Linux, Mac OS X or Windows. The last two are available by installing boot2docker that provide the kernel to the host OS.
Containers rely on cgroups and namespaces Linux technologies. cgroups (abbreviated from control groups) is a Linux kernel feature that provides isolation to resources (CPU, memory, disk I/O, network). In that respect running the
top command will show different results inside a container than running the same command outside of the container, on the host machine. Continue reading