We can understand on how docker creates containers using Linux features like namespaces and cgroups etc., to build a container for docker to run application.
1) PID namespace
2) Network namespace
3) Mount(mnt) namespace
4) UTS namespace
5) IPC namespace
6) User namespace
References:
https://docs.docker.com/engine/security/