Introduction to Docker and Container based development

Nikini Aloka
5 min readJul 14, 2022

--

In this article, you can know introduction of Docker and Container based development.

Docker

Docker is an open source containerization platform. By using containers, which are standardized executable components integrating application source code with the operating system (OS) libraries and dependencies necessary to run that code in any context, it enables developers to package applications. Docker is product or software .But docker is not the exact terminology.

Container

Applications can be virtually packaged and isolated for deployment using a form of software called containers. Without the conventional need for virtual machines, containers can share access to an operating system (OS) kernel (VMs).

Generation 01

Previously , application is deployed on physical server. Let’s assume, we have 3 different server, Those day we need to use different physical hardware boxes. But it has many problem. They are maintaining problems and you need a space and separate network, operating system. Then wasting percentage is high.

According to these proplem,people move to the Second generation. It is a Hypervisors.

Generation 02

Let’s move to know what does hypervisor using diagram.

hypervisor, What is happened ?. we used single high processing hardware box. We install the hypervisor top of this. After that we create multiple virtual machine top of the hypervisor like below.

Let’s assume like this. There are 3 virtual machines (VM1 ,VM2 and VM3).And also I assume VM1 is taking 20 % of processing power,VM2 gets 10% of processing power and VM3 is taking 20% of processing power. Now all together, we have 50 % of processing power.Therfore other 50% of processing power can be used for create multiple virtual machine. The waste problem can be solved using generation 2.

Now we installed the operating system top of the virtual machine like Linux ,windows. After processing is done. We can install the app like below.

Do you think generation2 ,is it solve all our problems ? Actually not .Reason of that There are 3 different operating system ,Then we want to need high cost. It is problem. And also we have to need to lots of time. We can work with that, It is not very good solution .Therefore we move to generation3.

Generation 03

In here ,we create a single high processing hardware box. After that operating system is installed top of the hardware. Then we can solve the patching, updating, maintaining problems. Because we use one operating system. Next we create a docker on top of the OS.App is installed on top of the docker like below.

In here , Docker or Container is not equal to hypervisor. I t is very small than hypervisor. Hypervisor has own OS.But docker doesn’t have .

Docker /Container

There was a cloud platform called .cloud. Docker was created as a separate project by Docker Inc. Docker is a open source project. It is licensed by Apache 2.0 License. This is not owned by Docker Inc., but they were the pioneers in this project. Docker was developed using Go Language.

Docker is container. Separate operating systems and virtual machines are not required when using Docker. We don’t need multiple licensing or patches because we don’t have different operating systems. Docker is on top of a host operating system . Since the operating system has already started, your application is launched very quickly. These are advantage of docker /container based application.

Other problem of docker is Docker which is not persistent. I t means you shut down docker ,then everything are lost. By nature, Docker is persistent. Whatever you do ,when never shutdown or start. It doesn't matter. It does not destroy once you shutdown. As a best practice, it is advised to use your data in an external storage environment if it is a Database Docker.

Docker engine

Other thing that you should know. Docker engine is not a docker project. It is a small part where core orchestration, registry, security and services are built on top of the docker engine.

  • Orchestration

Orchestration is the process where all the instances are taken together and striding towards a common goal. Different containers can be created for HTTP runtime engine, authorization process, login, services.

  • Registry

This is a place where we can store our Docker images.

Ex: MongoDB, MySQL or any other Docker Image. We can push these into a registry.

The largest cloud, repository, and registry is Docker Hop, which has over 250K repositories and over a billion downloads. Any repository or Docker image can be downloaded, customized, and pushed back. You can download or point the hosts in your environment to a specific Docker registry if you wish to use these customized images back and your environment contains many hosts. in order for you to download your customized version.

Repositories come in both public and private versions. A repository that is private can only be accessed by you. Anyone may pull if the repository is open to the public. However, the repository can only be committed to by you or others to whom you have given permission.

Kubernetes

It is one of tool or platform or one of software ,It can be used for orchestration process which was initiated by Google. But now it is an open source project. Kubernetes can be used for web hosting at scale.

Kubernetes Architecture

Open Container Initiative

After Docker Inc. released their product, some other businesses began utilizing it. They discovered, however, that it does not meet their standards or specifications. They became aware of several structural problems. As a result, they put in place a framework of a similar sort dubbed “Rocket.” (RKT) Because two distinct companies were almost following two different courses for the same venture, there was disagreement. As a result, they established OCI, a mutual agreement/organization.

The Open Container Initiative’s major goal is to control and define container development. It enables moving platform- or vendor-specific code inside the engine.

References

[1]K. Dinesh, Youtube.com, 2022. [Online]. Available: https://www.youtube.com/watch?v=cUiU8yDdQmw&list=PLD-mYtebG3X9HaZ1T39-aF4ghEtWy9-v3. [Accessed: 14- Jul- 2022].

--

--