Introducing containerization
Containerization is a technology that is about making software development, deployment, and execution more efficient, consistent, and scalable.
To use a simple analogy, imagine that you are planning to set up several different themed parties (software applications) inside a large event hall (a physical server). Each party needs its own space, decorations, DJ (OS), and music playlist (application dependencies) to create the right atmosphere.
Using VMs is like renting multiple smaller rooms within the event hall. Each room is separate from the others, with its own walls (hypervisor), locks (isolated OS), and all the specific decorations and music it needs, as shown in Figure 15.1:
Figure 15.1: Using VMs is like renting multiple smaller rooms
This setup ensures that each party can happen without interference from the others, and each has everything it needs to operate independently. However, renting all these rooms and setting them up...