Docker is an open-source engine which automates the deployment of applications as highly portable, self-sufficient containers.
Docker containers are both
Docker is an open-source implementation of the deployment engine which powers dotCloud, a popular Platform-as-a-Service. It benefits directly from the experience accumulated over several years of large-scale operation and support of hundreds of thousands of applications and databases.
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.
Under the hood, Docker is built on the following components: