Docker is an open-source engine that automates the deployment of any application as a lightweight, portable, self-sufficient container that will run virtually anywhere.
Docker containers can encapsulate any payload, and will run consistently on and between virtually any server. The same container that a developer builds and tests on a laptop will run at scale, in production*, on VMs, bare-metal servers, OpenStack clusters, public instances, or combinations of the above.
Common use cases for Docker include:
* Please note Docker is currently under heavy development. It should not be used in production (yet).
The following presentation explains what Docker is in laymen terms and then goes into more detail what makes Docker special and different from virtual machines.
Or, if you want to give it a spin: