Before cloud computing, machines all came with their own OS installed on them which led to their programs breaking and more downtime. Virtual machines run on top of just the hardware and a hypervisor. This means that the software running on a VM is running on a guest OS which means that there’s less of a chance breaking than if it was running on the host OS.
There was still an issue with VM’s however; Running multiple guest OSs took up a lot of resources. This is the problem that containerization solves for. Rather than coming with a guest OS, containers use runtime engines to share the host of any machine it is running on. This ensures maximal efficiency and speed. VM’s might typically need 4-8GB to run well, but container images are often less than 100 MB.
The image shown above is a very good summarization of what virtualization is compared to containerization.
This may be a tough concept to grasp and it was crucial that we read multiple articles and tried to approach this from all different angle to make sure we understood it. Here are the resources that we used and that you can utilize as well!
- https://www.docker.com/resources/what-container
- https://www.cloudmanagementinsider.com/containerization-vs-virtualization/
- https://www.burwood.com/blog-archive/containerization-vs-virtualization
- https://www.liquidweb.com/kb/virtualization-vs-containerization/
- https://www.ibm.com/cloud/blog/containers-vs-vms
- https://www.redhat.com/en/topics/containers/containers-vs-vms
- https://www.hitechnectar.com/blogs/containerization-vs-virtualization/