Docker was an internal tool used with dotCloud for the Platform as a Service (PaaS) company and was released to the public in 2013. The idea for Docker originated from previous attempts at creating independent, isolated applications complete with all operational dependencies bundled into a single container.
Docker uses the Linux Kernel’s virtualization capabilities to run applications using a libcontainer library programmed in the Go language. This makes the execution environment entirely independent from the underlying infrastructure. Specifically, Docker allows resource isolation to reduce the overhead of starting and maintaining virtual machines for application dependencies or service scalability.
This makes Docker perfect for deploying applications on any of the following environments:
- On-site servers or virtualized data centers
- Public or Private Cloud environments
- Bare Metal Servers
Docker packages an application (and all its dependencies) into a container that runs on any Linux server, making it flexible and easily portable. The latest version of Docker also supports Windows applications and environments. The container isolates the applications view of the operating environment while providing resource limiting for CPU and Memory on the box.