Extending OpenStack
上QQ阅读APP看书,第一时间看更新

Meeting Docker

If you are not familiar with Docker, then we could examine it briefly. Basically, the term Docker falls into the same containerization technology paradigm. Unlike Linux containers, Docker is a great software that has the following qualities:

  • It isolates a containers workload within the same infrastructure or machine (shared resources)
  • It is much lighter and faster in running applications on shared compute resources
  • It allows a direct interaction with the underlying driver devices
  • It can be installed and run on bare metal machines
  • It enables saving, rolling back, and creating snapshots of the state of containers
  • It provides a new level of image portability by committing and sharing images for later use
To read more about Docker, more information can be found at  www.docker.com.

Out of the box, Docker helps enterprises to build intuitive microservice applications. Although Docker is not intended to replace virtual machines, it can be considered as an excellent tool for software and application packaging, and it brilliantly enforces the immutable infrastructure pattern.

Immutable infrastructure is a disposable environment that relies on the consistency of its component deployment. Unlike mutable infrastructure, every component can be replaced at every deployment without affecting the production pipeline. This requires a fully automated runtime environment that is inspired by programming patterns such as Continuous Integration ( CI) and Continuous Delivery ( CD).

Docker is still emerging as a successful tool, especially for cloud environments. As OpenStack kept enlarging its virtualization platform support list, Docker has been recently added to the list of supported hypervisors. OpenStack exposes a new node driver, docker.DockerDriver, it contacts the Docker registry holding images and uploads them to Glance. New spawned instances will be running Docker engine to run containers. Note that any internal communication between a Docker virtual driver and a Docker agent is performed using HTTP API calls, as shown in the following diagram: