What are containers?
Similar to Virtualization, Containerization is another fundamental technology in cloud engineering.
If you haven’t read the blog about virtualization, give that a go first!
What Virtualization aims to do is run multiple instances of the whole machine on top of a software layer, whereas containers aim to run an instance of a software/OS on top of the host. This reduces overhead.
Each container shares the same host operating system kernel (we will talk about Kernel in another blog) but has its own isolated file system and runtime environment. This makes containers much more efficient and faster than traditional virtual machines, as they can be started up and shut down in seconds, and consume fewer system resources.
For instance, let’s say, I need a Rocky Linux machine for testing. I can spin up a whole Virtual machine with network and storage or I can spin up a lightweight Rocky Linux container using Docker. The latter does not require all the resources needed for a VM and does the job for me.
So containers are outright better than VM?
No.
Each has its own pros and cons. Which one to use would come down to what you are trying to accomplish.
So to sum up, containers, in general, allow your apps to be portable. Literally, put all dependencies of your app inside one “virtual container” and ship it. This gives your app a uniform run time environment no matter where it is run.
Subscribe to my newsletter
Read articles from Cerulean Cloud directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by