What is Docker Container and Use-Case

What is Docker Container and Use-Case

Hello friends , hope you all doing good

I am here to share you Today's most important topic Docker. As you all know Docker has gained immense popularity in this fast growing IT world. Organizations are continuously adopting it in their production environment. So today's agenda will we as follows:

  • History Before Containerization
  • What is containerization
  • How does containerization works
  • What is Docker

History Before Containerization

Before containerization came into the picture, the leading way to isolate ,organize applications and their dependences was to place each and every application in its own virtual machine, These machine run multiple application on the same physical hardware, and this process is nothing but virtualization.

Virtualization has few drawbacks such as the virtual machines were bulky in size may be several gigabytes, running multiple virtual machines lead to unstable performance, VM take several minutes to boot up de and VM'S would not solve the problems like portability, software updates, or continuous integration and continuous delivery.

These drawbacks led to the emergence of a new technique called Containerization.

WHAT IS CONTAINERIZATION

Containerization is defined as a form of operating system virtualization, through which applications are run in isolated user spaces called containers, all using the same shared operating System(OS). A container is essentially a fully packaged and portable computing environment.

  • Everything an application needs to run its binaries, libraries, configuration files and dependencies is encapsulated and isolated its containers.
  • The container itself is abstracted away from the host OS, with only limited access to underlying resources much like a lightweight virtual machine.
  • Container application can be run on various types of infrastructure - on bare metal, within VMs, and in the cloud -without needing to refactor it for each environment.

HOW DOES CONTAINERIZATION WORK

Container is an executable package of software, running on top of a host OS. A host may support many containers 10's or 100's or 1000's concurrently, in case of a complex (microservices) that uses numerous containerized ADCS. This setup works because all minimal, resource-isolated processes that others cannot access.

Think of a containerized application as the top layer of a multi-tier cake:

  1. At the bottom, there is the hardware of the infrastructure , including its CPU, disk storage and network interfaces.
  2. Above that, there is the host OS and its kernel -the latter serves as a bridge between the software of the OS and the hardware of the underlying system.
  3. The container engine and its minimal guest OS, which are particular to the containerization technology being used.
  4. At the top are the binaries and libraries(bin/libs) for each application and the apps themselves, running in their isolated user spaces.

WHAT IS DOCKER

Lets understand with an example

A company needs to develop a java Application. In order to do so the developer will setup an environment with tomcat server installed in it. Once the application is developed, it needs to be tested by the tester. Now the tester will again set up tomcat environment from the scratch to test the application. Once application testing is done, it will be deployed on the production server. Again the production needs an environment with tomcat installed on it, so that it can host the java application. If you see the same tomcat. There some issues that I have listed below with this approach:

  1. There is a loss of time and effort.
  2. There could be a version mismatch in different setups i.e. the developer and testing may have installed tomcat 7, however the system admin installed tomcat 9 on the production server.

Now, I will show you how Docker container can be used to prevent this loss.

In this case, the developer will create a tomcat docker image (An image is nothing but a blueprint to deploy multiple containers of the same configurations) using a base image like ubuntu, which is already existing in Docker Hub(the Hub has some base images available for free). Now this image can be used by the developer, the tester and the system admin to deploy the tomcat environment. This is how this container solves problem.

Docker is a platform which packages an application and all its dependencies together in the form of containers. This containerization aspect that the application works in any environment. As you can see in the diagram,

container1

each and every application runs on separate containers and has its own set of dependencies and libraries. This makes sure that each application is independent of other applications, giving developers surety that they can build applications that will not interfere with one another.

So a developer can build a container having different applications installed on it and give it to the QA team. Then QA team would only need to run the container to replicate the developer's environment. !!!!





To view or add a comment, sign in

More articles by Saloni Gupta

  • Configure Kubernetes

    Kubernetes also known as K8s or "kube" it is an open source container Orchestration platform that automates many of the…

  • Cross Region Replication and Versioning in S3

    What is Cross Region Replication? Cross Region Replication is a feature that replicates the data from one bucket to…

    3 Comments
  • Accessing S3 with AWS IAM Roles

    What is CLI(Command Line Interface) The AWS Command Line Interface (CLI) is a unified tool to manage your AWS services.…

    2 Comments
  • CONFIGURE AWS S3 LIFECYCLE POLICY

    What is S3? S3 stands for Simple Storage Service. It provides object storage through a web service interface.

    2 Comments
  • What is Docker and Docker Image

    In this blog we will try to understand one of most popular tools used to containerize and deploy applications over the…

    2 Comments
  • What is Kubernetes and how industry use it

    As a front-End developer, you don't have to know how to configure an infrastructure from scratch. However, if you have…

    4 Comments
  • My Journey of ARTH-200 Days

    200 days of ARTH- The school of technology. Today I will not say Thank you because I know no word can define what you…

    3 Comments
  • Tra ML model inside a Docker Container

    In this article, we are going to create a simple machine learning model on top of a container our model will predict a…

    2 Comments
  • What is Jenkins and Use-Case

    Agenda What is Jenkins What is Continuous Integration How Does Jenkins Work Why use Continuous Integration with Jenkins…

  • What is Ansible & Ansible Tower

    Why we need Ansible? Let us take a little back to the beginning of networked computing when deploying and managing…

    2 Comments

Others also viewed

Explore content categories