Docker is an open platform for building, shipping and running distributed applications. It allows developers to package applications into containers that have everything needed to run, including libraries and other dependencies, and ship them to any Docker-enabled infrastructure. Containers are more portable and provide better isolation than virtual machines, and allow applications to be deployed with minimal overhead or conflict. Docker uses containers, images and a Dockerfile to deploy and run applications reliably across any infrastructure.