To understand Docker you first need to understand two pieces of software that it utilizes to do its tasks:
linux containers (lxc) and aufs what are linux containers (lxc)? LXC (LinuX Containers) is an operating system–level virtualization method for running multiple isolated Linux systems (containers) on a single control host.
The Linux kernel comprises cgroups for resource isolation (CPU, memory, block I/O, network, etc.) that does not require starting any virtual machines.