Docker complements LXC with a high-level API which operates at the process level. It runs unix processes with strong guarantees of isolation and repeatability across servers.
Docker is a great building block for automating distributed systems: large-scale web deployments, database clusters, continuous deployment systems, private PaaS, service-oriented architectures, etc.
Any combination of binaries, libraries, configuration files, scripts, virtualenvs, jars, gems, tarballs, you name it. No more juggling between domain-specific tools. Docker can deploy and run them all.
Docker can run on any x64 machine with a modern linux kernel - whether it's a laptop, a bare metal server or a VM. This makes it perfect for multi-cloud deployments.
docker isolates processes from each other and from the underlying host, using lightweight containers.
Because containers are isolated in their own filesystem, they behave the same regardless of where, when, and alongside what they run.
John Willis @botchagalupe: IMHO docker is to paas what chef was to Iaas 4 years ago
John Feminella @superninjarobot: So, @getdocker is pure excellence. If you've ever wished for arbitrary, PaaS-agnostic, lxc/aufs Linux containers, this is your jam!
David Romulan @destructuring: I haven't had this much fun since AWS
Under the hood, Docker is built on the following components: