What is Container or Container-based Virtualization?

In my other blogs, we have seen about Microsoft Azure Cloud Service.
In my earlier blog, I wrote about .Net Core, In this blog I will write about Container-based virtualization.
What is Container?
A container is isolated but shares OS with related apps, bins, and libraries. Container or Container-based Virtualization is promoted by the company called Docker Inc.
In this blog, we will explore Container in details. Let's understand what is container or containerization or Container-based Virtualization.

What is Container or Container-based virtualization?

A container is a way to virtualize operating system where you can deploy and run your application before moving to a real-time environment. It is an OS-level virtualization for deploying and running distributed applications.

You may understand a container with below statement.

If you are going to deploy your application in an environment lets' say Production. You want to be very much sure about the successful deployment of your application. In this case, you may have an option to create a replica of that production VM/Server to deploy and test the application.

But, creating a new VM/Server is not an easy task. It requires you more manpower to create and configure, it may cost you extra in context of money.

What if, if you have an option to create a small computing system which will be a replica of that production environment. It does not require you any extra cost. You will happily go for this option. This concept is called container-based virtualization.

Earlier i.e. a few years ago in IT industry -

  • Applications were monolithic
  • Deployment on a single server
  • Single technology stacks like .Net, Java or PHP 
But today, multiple apps are coming every day, new versions are being launched frequently, no single tech stack (a single application can have more than one technologies or programming languages), deployment on multiple servers.

Why Container-based Virtualization?

The container makes your application portable, it looks same everywhere. Containers contain all the dependent files like binaries, libraries and other file systems, so no worry about the portability.

Benefits of Docker Container

  • Isolation
  • Easy and fast deployment
  • Low risk of failing in production
  • Frequent App version release

Container Architecture

container architecture

What is Docker?

Docker is an open source which developed a process to give containers better portability. Docker is the most popular container software. It allows you to move among any systems which share the host OS and this can be done without changing a single line of code. Remember, Docker platform is for the developer as well as system admins.

Docker platform gives you privilege to test, deploy your code into the production environment as quickly as possible.

How Docker Container Works?

Docker container uses a Docker Engine. It is a software to run Docker images which were created. A machine running a docker server is called Docker host.

How Docker container is different from Virtual Machines?

In Virtual Machines, multiple guest OS can run on a single host OS. All the guest OS runs independently and are similar to a host machine also guest OS takes time to boot. Every guest OS has their own binaries like a normal machine.

Using Docker engine we can create multiple containers on a single Host machine. In a container, we don't need to wait for boot, unlike VMs. Containers are light-weight and faster compare to VMs.

vm vs containers

Hope you like this post. I will continue writing my blogs on Cloud Computing, MicroService, Docker Containers, Dot Net Core, and SharePoint.


Blogs on Microsoft Azure-


You may read some popular blogs on SharePointCafe.Net


Comments

Popular

What's new in C# 6.0 language - All new features of C# 6.0 for developers

SharePoint Interview Questions and Answers