Containers and Introduction to Docker

Ashwin Kumar Ramasamy
5 min readDec 27, 2020

Hello Everyone I hope all are safe and good ! Here I'm going to share something about Containers and a famous container tool called Docker. Shall we move,

Container

Think that if you're doing some project, and you have to run several instructions in your machine by installing various tools and packages for that project. After completing all installations and successfully completed your work it is good to run it in your machine. But if you want to share your project environment by zip files, repositories etc to your friends and colleagues, are you think that the exact environment is shared and exactly your project implemented in their systems. Definitely not there are some changes happen in those projects.

To overcome these situations there is a DevOps tool called Containers. Containers are the tools helpful to share the entire environment to the one system to other system. By using this tools we can easily share our virtual environment to any others machines. Our project will execute in an exact manner without any modifications.

An instrumentation may be a customary unit of computer code that packages up code and every one of its dependencies therefore the application runs quickly and dependably from one computing setting to different. Obtainable for each UNIX operating system and Windows-based applications, containerized computer code can forever run identical, not with standing the infrastructure.

What is Docker?

Docker is an associate open platform for developing, shipping, and running applications. Loader allows you to separate your applications from your infrastructure therefore you’ll be able to deliver computer code quickly. With loader, you’ll be able to manage your infrastructure within the same ways in which you manage your applications. Docker is developed by GO programming language.

It is the one of widely using container software useful to run our project environment to another environment. It contains images (files) that are used to share to other environment. Let’s consider with a real scenario manner.

Problem :

Let’s say you have got 3 totally different Python-based applications that you just attempt to host on one server (which might either be a physical or a virtual machine).

Each of those applications makes use of a unique version of Python, furthermore because the associated libraries and dependencies, take issue from one application to different.

Since we have a tendency to cannot have totally different versions of Python put in on a similar machine, this prevents South American country from hosting all 3 applications on a similar laptop.

Solution:

Let’s look into however we tend to may solve this downside while not creating use of loader. In such a state of affairs, we tend to may solve this downside either by having 3 physical machines, or one physical machine, that is powerful enough to host and run 3 virtual machines on that.

Both the choices would permit South American nation to put in totally different versions of Python on every of those machines, together with their associated dependencies.

Irrespective of that answer we elect, the prices related to procuring and maintaining the hardware are quite dearly-won.

Now, let’s look at however loader may be associate degree economical and cost-efficient answer to the current downside.

To understand this, we’d like to require a glance at however specifically loader functions.

The machine on that loader is put in and running is typically spoken as a loader Host or Host in easy terms.

So, whenever you intend to deploy an associate degree application on the host, it’d produce a logical entity on that to host that application. In loader nomenclature, we tend to decision this logical entity an instrumentality or loader instrumentality to be a lot of precise.

A loader instrumentality doesn’t have any software package put in and running on that. However, it’d have a virtual copy of the method table, network interface(s), and therefore the filing system mount point(s). These are inheritable from the software package of the host on that the instrumentality is hosted and running.
Whereas the kernel of the host’s software package is shared across all the containers that are running on that.

This allows every instrumentality to be isolated from the opposite gift on constant host. Therefore, it supports multiple containers with totally different application needs and dependencies to run on constant host, as long as they need constant software package needs.

To understand however loader has been helpful in resolution this downside, you would like to consult with future section, that discusses the benefits and downsides of exploitation loader.

In short, the loader would virtualize the software package of the host on that it’s put in and running, instead of virtualizing the hardware elements.

Architecture

Advantages of Docker

Some key advantages of victimization dockhand are listed below:

  1. Docker supports multiple applications with totally different application necessities and dependencies, to be hosted along on a similar host, as long as they need similar package necessities.
  2. Storage Optimized An outsized range of applications will be hosted on a similar host, as containers are typically few megabytes in size and consume little disc space.
  3. Robustness An instrumentality doesn’t have associate package put in on that. Thus, it consumes little memory compared to a virtual machine (which would have a whole package put in and running on it). This conjointly reduces the boot up time to only a couple of seconds, as compared to a few of minutes needed also up a virtual machine.
  4. Reduce prices Dock hand is a smaller amount hard once it involves the hardware needed to run it.

Disadvantages of Docker

Applications with completely different package necessities can not be hosted along on an equivalent labourer Host. For instance, let’s say we’ve got four completely different applications, out of that three applications need a Linux-based package and therefore the alternative application needs a Windows-based package.

In such a situation, the three applications that need Linux-based package are often hosted on one labourer Host, whereas the appliance that needs a Windows-based package must be hosted on a distinct labourer Host.

I think you got something by reading this article.

Thank you !

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Ashwin Kumar Ramasamy
Ashwin Kumar Ramasamy

Written by Ashwin Kumar Ramasamy

Passionate in software development, network security and technical training.

Responses (1)

Write a response

Awesome!

--