Docker is a popular way of packaging your applications, or micro services
into container images, which can be copied to any running docker server.
Docker uses a linux kernel feature - namespacing - which allows it to run
applications in isolation away from the operating system, much like virtual
machines, avoiding common pitfalls of virtualization like CPU and RAM allocation.
Each docker container is much like any standalone application, except for
the fact that it’s isolated away from the host OS.