This article is a contrast of Virtual machines and Containers.
Virtual machines
Virtual machines are nothing but machines being run on a Hypervisor which runs a Guest Operating System i.e you are running a machine inside of a machine with a specified RAM , Memory and Disk size.
Usage cases of Virtual Machines:
→Running a Operating System inside another Operating System.
→Running different installations or software packages needed for a specific application.
→Can be used for testing applications which are being built.
Containers
Containers are isolated lightweight environments which are designed specifically to reduce the overhead caused by a Full Operating system, Containers use a lightweight image of the OS we need and all the dependencies and configurations can be packaged into a single image.
Usage cases of Containers :
→Running different versions of java / python or any installations needed
→Container applications can be used on any VM without any reconfigurations since all the packages are inbuilt into the image.
→Deploying MVC applications as images for faster and easy deployments.
We will go more deeper into Containerising applications in the next articles :)