What is containerization?
In the last chapter, we covered virtualization. Virtualization allows us to run multiple virtual servers on one physical piece of hardware. We allocate CPU, RAM, and disk space to these VMs, and they run as if they were a real server. In fact, for all intents and purposes, a VM is a real server.
However, there are also weaknesses with VMs. Perhaps the most glaringly obvious is the resources you allocate to a VM, which are likely being wasted. For example, perhaps you've allocated 512 MB of RAM to a VM. What if the application only rarely uses more than 100 MB of RAM? That means most of the time, 412 MB of RAM that could otherwise be used for a useful purpose is just sitting idle. The same can be said of CPU usage. Nowadays, VM solutions do have ways of sharing unused resources, but effectively, resource efficiency is a natural weakness of the platform.
Containers, unlike VMs, are not actual servers. At least, not in the way you typically think...