The Docker driver is a hypervisor driver for OpenStack Compute, introduced with the Havana release. Docker is an open-source engine which automates the deployment of applications as highly portable, self-sufficient containers which are independent of hardware, language, framework, packaging system and hosting provider. Docker extends LXC with a high level API providing a lightweight virtualization solution that runs processes in isolation. It provides a way to automate software deployment in a secure and repeatable environment. A standard container in Docker contains a software component along with all of its dependencies - binaries, libraries, configuration files, scripts, virtualenvs, jars, gems and tarballs. Docker can be run on any x86_64 Linux kernel that supports cgroups and aufs. Docker is a way of managing LXC containers on a single machine. However used behind OpenStack Compute makes Docker much more powerful since it is then possible to manage several hosts which will then manage hundreds of containers. The current Docker project aims for full OpenStack compatibility. Containers don't aim to be a replacement for VMs, they are just complementary in the sense that they are better for specific use cases. Compute's support for VMs is currently advanced thanks to the variety of hypervisors running VMs. However it's not the case for containers even though libvirt/LXC is a good starting point. Docker aims to go the second level of integration.
Note | |
---|---|
Some OpenStack Compute features are not implemented by the docker driver. See the hypervisor support matrix for details. |
To enable Docker, ensure the following options are set in
/etc/nova/nova-compute.conf
on all hosts running the
nova-compute
service.
compute_driver=docker.DockerDriver
Glance also needs to be configured to support the Docker container format, in
/etc/glance-api.conf
:
container_formats = ami,ari,aki,bare,ovf,docker
Configuration option=Default value | Description |
docker_registry_default_port=5042 | (IntOpt) Default TCP port to find the docker-registry container |