Virtualization vs. containerization


Server virtualization reproduces an entire computer in hardware, which then runs an entire OS. The OS runs one application. That’s more efficient than no virtualization at all, but it still duplicates unnecessary code and services for each application you want to run.

Containers take an alternative approach. They share an underlying OS kernel, only running the application and the things it depends on, like software libraries and environment variables. This makes containers smaller and faster to deploy.

Virtual Machines Containers
Represents hardware-level virtualization Represents operating system virtualization
Heavy Weight Light Weight
Slow provisioning Real time provisioning and scalability
Limited performance Native performance
Fully isolated and hence more secure Process-level isolation and hence less secure

In the following video, Sai Vennam breaks down the basics of containerization and how it compares to virtualization via VMs (8:08):