Containers
A Linux Container, (referred to simply as container for the rest of this chapter) allows applications to run on an allocated share of resources within an isolated, individual environment. Since all containers share the Operating system (OS) of the host machine and do not require the OS to be loaded up, they can be created in a matter of seconds.
Container technology, based on operating system level virtualization, has been present for over a decade now. OS level virtualization is a method by which an OS kernel allows creation of many user namespace instances (also called containers) instead of only one.
We can look at containers as encapsulated, individually deployable components running as isolated instances on the same kernel. Containers have a big advantage over traditional technologies such as bare metal, meaning servers with an operating system or virtualized environments such as Microsoft Hyper-V. From a developer's point of view, we can just package our application and dependencies...