Intro
Whereas Virtual Machines rely on a Hypervisor (an abstraction layer) to interact with the hardware’s resources, this allows for multiple, completely isolated operating systems to run on the same machine; but this is resource intensive.
Containerization
Is similar in concept but instead of running a completely isolated OS, it relies on a container engine to manage resources for isolated environments.
Within a container, only the packages and dependencies needed to run the software/project within that environment are installed.