What is Docker? What makes it easier in our lives ?

What is Docker? What makes it easier in our lives ?

Lets think about you have developed a small application with REST services and you are providing services outside. The services you have tested in your local area are working very nicely. Then you put the application into test environment so that test team can test these services. In test environment, you often encounter problems based on operating system, the JDK version, or the differences from the 3rd party libraries in the environment, network and security settings.

It is very difficult to manage, version and modify the desired changes with today's methods. Today's methods compile the applications I call and create war, jar etc. packages and upload them to the related servers such as Tomcat, Glassfish, Weblogic etc.

You can use CI (Continuous Integration) tools for this purpose and you can do these tasks automatically with server plugins and Source Control Tool plugins. For example, you can integrate Bamboo with Stash, run Bamboo's Mvn code in the background when you have an update in the code, package it in code, and package it into a repository and deploy it to the relevant servers.

But when we say test environment, there are 3 different teams X,Y, Z which develops different features. It is very difficult for these teams to use the same servers for different capabilities at the same time and make them a testing environment. There is a need for a tool to set up these talents together with their environments. These buildings, which we call Container, provide the environment for you.

The CloudFormation service in AWS is a tool that allows you to create and version your infrastructure code. In JSON you can define https://s3-us-west-2.amazonaws.com/cloudformation-templates-us-west-2/EC2InstanceWithSecurityGroupSample.template Infrastructure with the following example templates.

You can also see similar features in Microsoft Azure. https://docs.microsoft.com/en-us/azure/container-instances/container-instances-multi-container-group

Docker allows to define Container with the declerative syntax in the same way how CloudFormation allows to define Infrastructure. The feature of Docker Containers is that it does not require a separate virtualization platform. Performs calls by making calls to the existing operating system functions. Therefore it is very fast and it works very well.

In the image below you can see the difference between normal VMs and Containers. Normal VMs spend a lot of time and energy to translate the Guest OS call into Host Operating System calls. Docker does not have this disadvantages.

DOCKER

Docker Containers do not need dedicated operating system, they share same operating system with more than one Docker Container.

DOCKER ARCHITECTURE

Docker Client does not communicate directly with Containers. It communicates via TCP / REST with the Docker Daemon located on the host. The Docker Daemon communicates with the containers on the host.


In Docker, you need to understand following concepts (images, registries and containers) well.

  1. Images
  2. Registeries
  3. Containers

We can explain details these concepts in another article.

Thanks

要查看或添加评论,请登录

Can Alptekin的更多文章

  • DevOps Ekip Yap?s? ve Uygulama Y?ntemleri

    DevOps Ekip Yap?s? ve Uygulama Y?ntemleri

    ?irketlerdeki DevOps uygulamalar?; ?irket teknolojilerine, bulunduklar? sekt?re ve kurumsal kültüre g?re farkl?l?k…

    1 条评论

社区洞察

其他会员也浏览了