Docker is an open source solution for fast testing and deployment of applications. Docker encapsulates software in containers that include the components you need to run an application, including tools, system, code, and the execution environment. Docker enables applications to be deployed and scaled in any environment, with the assurance that the code will run correctly.
Docker grants total control with its easy syntax. Containers can be created, deployed and run, copied and moved from one environment to another from any computer. Installing and uninstalling containers is independent of other installed containers, allowing one container to be upgraded or replaced without changing other containers.
By using Docker, applications will run independently of the system and environment they are running in. This saves time developing the application instead of spending time thinking about the system it will run on. Docker allows you to install and start containers that work together. Combined with docker-compose it is possible to deploy an entire application and its dependencies with a single command. Finally, upgrade installations can be simplified by easy-to-implement configuration. Being widely adopted, Docker has a robust ecosystem of standard tools and applications.