There has been a bit of confusion with container support in OpenStack, especially with implementations such as the Docker driver for Nova and the Magnum project. The OpenStack Magnum project provides Container-as-a-Service capability. So what is the difference between the two approaches? Well, the aim of the Nova Docker driver was to add Docker to be a supported hypervisor for Nova. This enables OpenStack Nova to launch and manage the lifecycle of a Docker container in a fashion similar to other virtual machine instances.
However, it quickly becomes evident that containers, especially the application containers, are not like virtual machines. Hosting an application in containers very often means deploying multiple containers, each running just a single process; these containerized processes then collaborate with each other to provide the complete features of the application. This means that...