The traditional way of deploying applications was through virtual machines or VMs. The application would use the OS file system, the OS’s resources and default packages installed.
Virtual machines have been extremely efficient in maximizing the use of infrastructure. Instead of running one application on one physical machine, we could run multiple VMs on top of the hypervisor which sits on the physical machine.
While it has proved to be useful, it still has its own disadvantages:
Enter containers. To further optimize the usage of the server, container can be used to virtualized the operating system. Through containers, we won’t need to run replicated OS. Regardless of how many containers we run on the machine, they will all use the same underlying operating system of the physical machine itself.
To facilitate the creation and management of the containers, we can use a container engine tool, such as Docker.
Overall, the benefits of containers are: