Brief Introduction Containers and Docker
We are living in a world where everyday we got to hear about some new technologies. In the past it took several months to hear about some sort of new technology. But now it has become days. In this article I’m gonna explain you about a new area in the software development field which everyone has been discussing recently. But it has been several years since this technology came into play. So let’s see what is this about.
What is Docker and Containers are about??
Docker is the leading container as a service platform in the world(CaaS). So another new term comes into play.Now what is a container?
When we consider cloud computing services there are three types of services that we can identify.They are Infrastructure as a Service(IaaS), Platform as a Service(PaaS) and Software as a Service(SaaS). I’m not going to explain you about those services in this article. In between IaaS and PaaS we can identify another service as CaaS which is named as Container as a Service. Also it can be identified as a subset of IaaS.
Containers can be identified as a method to package our software so that they can be run isolate without depending on what the host operating system and which libraries and frameworks that has been installed in the host operating system. As we can run our software without depending on the host operating system using a container platform like Docker, developers cannot make their famous excuse of ‘it works fine on my machine’.
This is really important when several developers are working collaboratively in a project. This paves the developers to focus on developing great software without worrying about where those software would be deployed.
Let’s see the difference between containers and virtual machines. As we all know virtual machines use hypervisors to virtually replicate hardware on a host OS and we can run multiple guest OS’s on it. However containers do not use any virtualization of hardware and it uses the host OS to run the applications without having guest OS’s like VM’s. Unlike th VM’s, containers are not bundled with a full OS. Containers contain only the libraries and and frameworks that need to run the software. In simple words we can say that VM provides an abstract machine while Containers provide an abstract OS.
As the above image shows when we are using containers we only need the libraries that are required to run a particular application. We need not to have guest OS’s at each time that we need to use a different platform to run an application. Containers share the host kernel among them.
Pros of Containers
- Lightweight — as the containers contain only the required libraries to run an application it doesn’t contain all the features of an OS like a VM. Multiple VM’s can be created in a host OS consuming tens and hundred GB’s of host machine’s memory. Compared to VM’s Containers consume the disk space in the size of MB’s.
- Fast startup time of containers compared to VM’s — As containers contain only the required set of libraries to run the software it starts up quickly compared to VM’s which contain whole operating system.
- Standard — Docker containers run on all types Linux distributions, Microsoft Windows distributions and all infrastructures including VM’s and bare metal and also in the cloud.
- Secure — Containers isolate the application environments only to that container. Issues of one single container won’t affect the others.
- Portable — We can use the containers everywhere without worrying about the machine that we are running it.
So that’s about containers. Docker is one of the most popular container platform. Using Docker we can create, manage and monitor the containers.
Docker automates the software development to deploying process. So that the developers need not to setup and configure development environments at each time they test or deploy the code. They can focus more on developing quality software rather than focusing on deployment problems.
Another keyword that you may get across when you are referring to containers is “image”. I will also explain the difference between and image and a container. Image is a lightweight, executable package that contains the libraries need to run a software on it. Where as container is a running instance of an image. When we download an image and run it, it becomes a container.
So that’s it for this article and in the next article I will explain about how to set up the Docker development environment.
Thank you for reading!!
References : https://www.docker.com/what-container



Comments
Post a Comment