Docker is Open Source virtualization software. The main feature of this software is that the virtualization does not occur via a virtual machine, which is usually the case, but via containers. Docker was released as Open Source software in March 2013 after it was developed as an internal project under dotCloud, a “platform-as-a-service” provider.
Integration is an important point for Docker, which is the reason that it can be easily integrated into a wide range of infrastructure tools. AWS, Ansible, CFEngine, Chef, and Google Cloud Platform are just a few examples. By far Docker’s most important component is the use of containers. Instead of using applications on a fully established, independent virtual machine (as is the case in traditional virtualization software), Docker packages the application together with all relevant system-related data of the relevant operating system in a container. This enables the application to access all the necessary system, configuration, and other files without having to communicate with a separate, active virtual machine. Besides a significant improvement in availability, this process supports the host system directly, as it uses a minimum amount of resources compared to conventional virtualization.
Similar to Vagrant, Docker supports automated virtualization, Ansible, Puppet, etc.