Docker was initially developed for dotCloud PaaS, on September 2013 Docker was being developed for Red Hat OpenShift and they are currently presenting at Rackspace HQ. So, there are quite interesting stories about Docker.
Docker is actually a tool which can package an application and its dependencies inside a virtual container and it can run on any Linux server. This helps enable flexibility and portability on where the application can run with wider options – on premise, public cloud, private cloud, bare metal, etc.
Docker, Cloud Computing and Server Virtualization : Basics
Important milestone was reached by Docker since the idea behind the project is brilliant and in a short time, it met the interest of many independent developers, resulting in more than 9800 Stars on GitHub (thus becoming the thirteenth most recommended of the project entire online repository on GitHub) and fork count over 1487.
Docker containers are both hardware-agnostic and platform-agnostic. This means that they can run anywhere, from your laptop to the largest EC2 compute instance and everything in between – and they don’t require that you use a particular language, framework or packaging system. That makes them great building blocks for deploying and scaling web apps, databases and backend services without depending on a particular stack or provider.
Docker, Cloud Computing and Server Virtualization : How it Works
Docker extends a common container format called Linux Containers (LXC), with a high-level API providing a lightweight virtualization solution that runs processes in isolation. Docker utilizes LXC, cgroups, and the Linux kernel itself. Unlike traditional virtual machines, a Docker container does not include a separate operating system, instead it relies on the operating system™s functionality provided by the underlying infrastructure.
The container technology in Docker can be used to extend distributed systems to run autonomously of a single physical machine or single instance per node, enabling nodes to be deployed as resources are available to provide a more seamless and platform as a service (PaaS) style deployment for systems like Apache Cassandra, Riak and related distributed systems.
The basic operation of Docker is quite simple: the tool is able to package an application and its dependencies in a virtual container that can be sent to running on any version of Linux.
The result of this process is more flexibility and portability of applications and the opportunity to execute them anywhere without any problem, from your laptop, to private and public cloud servers, virtual servers to physical servers. Dockers does the portability of virtual machines or operating systems, but it makes the code portable with which the application is written, thus allowing greater mobility between virtual machines, even in the cloud computing infrastructures.
Integrations have been made between Docker and infrastructure tools, including the following:
- OpenStack Nova
Excellent Tutorial :