Docker is a platform for deploying, distributing and running applications in containers. A container allows to include an app itself with all dependencies pre-installed. Unlike VMs, Docker uses native OS libraries and kernel. Containers are isolated from each other, have own libraries and manage their own processes. It is a much faster solution than VMs.
Docker saves a lot of time on configuring development environment, thus lets developers stay focused on coding. Moreover, Docker makes it easier to work on several projects with different system requirements on a single computer.
Docker can be also used to build clusters with Docker Swarm or third party systems like Kubernetes.
We at Kiwee have managed to migrate all our web projects to run in containers, which increased our efficiency.