{"id":8361,"date":"2018-02-24T09:44:24","date_gmt":"2018-02-24T09:44:24","guid":{"rendered":"http:\/\/www.esds.co.in\/blog\/?p=8361"},"modified":"2018-05-08T09:43:11","modified_gmt":"2018-05-08T09:43:11","slug":"docker-and-containers-technology","status":"publish","type":"post","link":"https:\/\/www.esds.co.in\/blog\/docker-and-containers-technology\/","title":{"rendered":"A Look At Docker &#038; Containers Technology"},"content":{"rendered":"<h2><span class=\"ez-toc-section\" id=\"Docker_Containers_Technology\"><\/span><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-8362 alignleft\" src=\"https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/1st-img.jpg\" alt=\"A Look At Docker &amp; Containers Technology\" width=\"302\" height=\"235\" srcset=\"https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/1st-img.jpg 500w, https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/1st-img-150x117.jpg 150w, https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/1st-img-300x233.jpg 300w\" sizes=\"auto, (max-width: 302px) 100vw, 302px\" \/>Docker &amp; Containers Technology<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>V<\/strong>irtualisation is the process of running virtual instances of computer systems, abstracted from the actual underlying hardware. You can have multiple Operating Systems (OS) running simultaneously on single hardware where each OS is a virtual instance isolated from other. These OSs are termed as virtual machines (VM) which can be stored as an instance for backup, used for software testing in various environments, migrated to another location altogether.<\/p><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_76 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.esds.co.in\/blog\/docker-and-containers-technology\/#Docker_Containers_Technology\" >Docker &amp; Containers Technology<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.esds.co.in\/blog\/docker-and-containers-technology\/#What_is_Docker\" >What is Docker?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.esds.co.in\/blog\/docker-and-containers-technology\/#What_is_a_Container\" >What is a Container?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.esds.co.in\/blog\/docker-and-containers-technology\/#How_is_a_Container_different_from_a_VM\" >How is a Container different from a VM?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.esds.co.in\/blog\/docker-and-containers-technology\/#How_does_the_Docker_work\" >How does the Docker work?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.esds.co.in\/blog\/docker-and-containers-technology\/#Which_are_the_other_components_of_a_docker\" >Which are the other components of a docker?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.esds.co.in\/blog\/docker-and-containers-technology\/#What_are_the_advantages_of_docker_containers\" >What are the advantages of docker containers?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.esds.co.in\/blog\/docker-and-containers-technology\/#Is_containerisation_of_Docker_a_unique_concept\" >Is containerisation of Docker, a unique concept?<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n<p style=\"text-align: left;\"><strong>Example:<\/strong> An enterprise server OS crashes along with the hardware. As the OS was a VM, the system administrator of the enterprise easily picks-up its backup VM (VMs are stored as image files &#8212; a snapshot of the original instance) and deploys it on other working hardware in minutes.<\/p>\n<p style=\"text-align: justify;\">VM creates a whole OS. But we can also create virtualised application packages that can run on different platforms same as a VM does irrespective of platform, using <strong>\u2018Docker and Containers\u2019.<\/strong><\/p>\n<h3 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"What_is_Docker\"><\/span>What is Docker?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"text-align: justify;\">Docker is an open source ecosystem of tools to create, manage and deploy applications for any platform. The general idea is to create applications, <strong>package them together into containers<\/strong> and ship them for deployment. <strong>Docker is a virtualisation\u00a0technology.<\/strong> It allows applications to use the OS of the computer on which it is deployed (Client) and ships only that parts of the application (that is, the libraries, dependencies, supporting applications, etc.) that are not available on the Client. With the help of docker, we create containers containing applications that are consistent irrespective of the platform. Docker is available for the Linux, Windows and Mac environment.<\/p>\n<h3 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"What_is_a_Container\"><\/span>What is a Container?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"text-align: justify;\">A Container is a bundle of applications with all its dependencies that remain isolated from the guest OS (Client), on which they run. A software developer can package an application and all its components into a container and distribute it for use. The containers created by the docker are called <strong>Docker-files. <\/strong>They can be downloaded and executed on any computer (Physical or VM) because it will use the resources of the guest OS for execution, as explained in the previous point.\u00a0Containers are very similar to VMs.\u00a0Open Source tools like\u00a0Kubernetes,\u00a0Ansible and\u00a0OpenShift can be used for efficient management of containers.<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/docker-container.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-8363 size-full aligncenter\" src=\"https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/docker-container-e1519465570406.jpg\" alt=\"docker-container\" width=\"599\" height=\"324\" srcset=\"https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/docker-container-e1519465570406.jpg 599w, https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/docker-container-e1519465570406-150x81.jpg 150w, https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/docker-container-e1519465570406-300x162.jpg 300w\" sizes=\"auto, (max-width: 599px) 100vw, 599px\" \/><\/a><\/p>\n<h3 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"How_is_a_Container_different_from_a_VM\"><\/span>How is a Container different from a VM?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"text-align: justify;\">Containers and VMs both use the concept of virtualisation. Though containers work like VMs, they differ in their capacity. A VM creates a complete OS but containers create only specific components on a guest computer, which are needed to operate. Unlike VMs, <strong>Containers do not need hypervisors<\/strong> and hence, we can rid of installing the useless components of VM. Containers have a small footprint on the system than a complete VM.<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/tem44-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-8365 aligncenter\" src=\"https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/tem44-1.png\" alt=\"How is a Container different from a VM?\" width=\"727\" height=\"402\" srcset=\"https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/tem44-1.png 727w, https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/tem44-1-150x83.png 150w, https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/tem44-1-300x166.png 300w, https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/tem44-1-660x365.png 660w\" sizes=\"auto, (max-width: 727px) 100vw, 727px\" \/><\/a><\/p>\n<h3 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"How_does_the_Docker_work\"><\/span>How does the Docker work?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"text-align: justify;\">The Docker has a client-server architecture.<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/dockers-work.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-8366 aligncenter\" src=\"https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/dockers-work.png\" alt=\"How does the Docker work?\" width=\"1041\" height=\"552\" srcset=\"https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/dockers-work.png 1041w, https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/dockers-work-150x80.png 150w, https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/dockers-work-300x159.png 300w, https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/dockers-work-1024x543.png 1024w, https:\/\/www.esds.co.in\/blog\/wp-content\/uploads\/2018\/02\/dockers-work-660x350.png 660w\" sizes=\"auto, (max-width: 1041px) 100vw, 1041px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Docker client communicates through <strong>REST API<\/strong> with the docker daemon which is available on the same machine or can be on a remote machine.<\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>The Daemon <\/strong>(dockerd) is responsible for distributing, building and running the containers. It listens to the requests by the client. It manages objects such as images, containers, networks and volumes.<\/li>\n<\/ul>\n<ul style=\"text-align: justify;\">\n<li><strong>The Client<\/strong> (docker) is the docker user. A client can communicate with multiple docker daemons.<\/li>\n<\/ul>\n<ul style=\"text-align: justify;\">\n<li><strong>A Docker Registry<\/strong> stores images of applications.\u00a0Docker store allows you to buy and sell Docker images or distribute them for free. There are public registries available or you can even create a private registry.<\/li>\n<\/ul>\n<h3 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Which_are_the_other_components_of_a_docker\"><\/span>Which are the other components of a docker?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"text-align: justify;\">The various components that make up a docker ecosystem are:<\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>Docker Engine: <\/strong>It is an application for creating images and containers. It consists of a server (the daemon), REST API and the Command Line interface.<\/li>\n<\/ul>\n<ul style=\"text-align: justify;\">\n<li><strong>Docker Hub: <\/strong>It is a public registry that hosts Docker images. It is a marketplace like Google Play which hosts all android applications \u2013 Like you can download android applications from here.<\/li>\n<\/ul>\n<ul style=\"text-align: justify;\">\n<li><strong>Docker Compose: <\/strong>It is used to run multiple containers as a single service. <strong>Example: <\/strong>If an application requires multiple services to run, say SMTP and MySQL, you can create only one file for starting both the containers simultaneously without the need to start each one separately.<\/li>\n<\/ul>\n<ul style=\"text-align: justify;\">\n<li><strong>Docker Storage: <\/strong>It offers various Storage drivers to works on underlying storage devices.<\/li>\n<\/ul>\n<ul style=\"text-align: justify;\">\n<li><strong>Docker Cloud: <\/strong>It is a service where you can connect docker to another cloud environment to use containers, deploy and scale containers and automate them.<\/li>\n<\/ul>\n<ul style=\"text-align: justify;\">\n<li><strong>Docker SWARM mode: <\/strong>It supports cluster load balancing for Docker. In SWARM mode, multiple Docker host resources are pooled together to act as one. This enables the users to quickly scale up their deployments and even balance the load.<\/li>\n<\/ul>\n<h3 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"What_are_the_advantages_of_docker_containers\"><\/span>What are the advantages of docker containers?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul style=\"text-align: justify;\">\n<li><strong>Fast delivery of service: <\/strong>Containers enable to fasten the development, testing and deployment process of an application. They reduce the size of your applications which can be transferred on networks with low bandwidth. <strong>Example:\u00a0<\/strong>A developer writes a code locally and shares it with colleagues on the network through containers. These containers are tested for, without worrying about the platform or waiting for a compatible one. They can collaborate seamlessly, reducing the time required to deliver a service.<\/li>\n<\/ul>\n<ul style=\"text-align: justify;\">\n<li><strong>Consistency: <\/strong>The packaged application performance is consistent on machines with different platforms. This frees the developer from worrying about compatibility issues and focus totally on the development. <strong>Example:<\/strong> An application developed on Ubuntu will perform in the same way on other computers with RHEL, as it does on Ubuntu.<\/li>\n<\/ul>\n<ul style=\"text-align: justify;\">\n<li><strong>Scalability: <\/strong>Containers are portable. They are just to be migrated from one system to another like a VM. This makes them highly scalable so that you can deploy new applications or kill the old ones instantly.<\/li>\n<\/ul>\n<ul style=\"text-align: justify;\">\n<li><strong>Smaller footprint and more workload can be put on the same hardware: <\/strong>Docker allows for containers which are very lightweight and has a low footprint, unlike a VM which reserves all the resources it has been granted. This enables to use more number of containers simultaneously on a system.<\/li>\n<\/ul>\n<ul style=\"text-align: justify;\">\n<li><strong>Security: <\/strong>Containers provide a considerable level of security to its applications as they remain isolated from each other on the guest OS. They are not likely to be affected by the other vulnerable applications.<\/li>\n<\/ul>\n<ul style=\"text-align: justify;\">\n<li><strong>Docker containers can be deployed on any physical machine, VM: <\/strong>Docker is a very useful technology that can be implemented in a cloud to enhance its performance.<\/li>\n<\/ul>\n<ul style=\"text-align: justify;\">\n<li><strong>Cost efficient: <\/strong>Docker is open source. We need not buy a complete VM to run just a few applications. You can simply choose to use only those containers containing applications that you need. This saves the unnecessary cost of not-so-useful components and drastically reduces the expenditure.<\/li>\n<\/ul>\n<h3 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Is_containerisation_of_Docker_a_unique_concept\"><\/span>Is containerisation of Docker, a unique concept?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"text-align: justify;\">Apparently No. There are services on the web (Software as a Service) that work like a container and were available long before since the release of Docker. <strong>Example: <\/strong>Web services like Youtube, Google Drive and others, irrespective of the platform you are running on, these services pack the required components together to run efficiently on your computer system. Although the open-source Docker is widely used and dominates the containerisation market, there are alternatives to it like the proprietary VMware vAPP, Opscode Chef, Canonical LXD,\u00a0Virtuozzo<u>,<\/u> etc.<\/p>\n<div id=\"s3gt_translate_tooltip_mini\" class=\"s3gt_translate_tooltip_mini_box\" style=\"background: initial !important; border: initial !important; border-radius: initial !important; border-spacing: initial !important; border-collapse: initial !important; direction: ltr !important; flex-direction: initial !important; font-weight: initial !important; height: initial !important; letter-spacing: initial !important; min-width: initial !important; max-width: initial !important; min-height: initial !important; max-height: initial !important; margin: auto !important; outline: initial !important; padding: initial !important; position: absolute; table-layout: initial !important; text-align: justify; text-shadow: initial !important; width: initial !important; word-break: initial !important; word-spacing: initial !important; overflow-wrap: initial !important; box-sizing: initial !important; display: initial !important; color: inherit !important; font-size: 13px !important; font-family: X-LocaleSpecific, sans-serif, Tahoma, Helvetica !important; line-height: 13px !important; vertical-align: top !important; white-space: inherit !important; left: 343px; top: 38px;\">\n<div id=\"s3gt_translate_tooltip_mini_logo\" class=\"s3gt_translate_tooltip_mini\" title=\"Translate selected text\"><\/div>\n<div id=\"s3gt_translate_tooltip_mini_sound\" class=\"s3gt_translate_tooltip_mini\" title=\"Play\"><\/div>\n<div id=\"s3gt_translate_tooltip_mini_copy\" class=\"s3gt_translate_tooltip_mini\" title=\"Copy text to Clipboard\"><\/div>\n<style type=\"text\/css\" media=\"print\">#s3gt_translate_tooltip_mini { display: none !important; }<\/style>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Docker &amp; Containers Technology Virtualisation is the process of running virtual instances of computer systems, abstracted from the actual underlying hardware. You can have multiple Operating Systems (OS) running simultaneously on single hardware where each OS is a virtual instance isolated from other. These OSs are termed as virtual machines (VM) which can be stored&#8230; <\/p>\n<div class=\"clear\"><\/div>\n<p><a href=\"https:\/\/www.esds.co.in\/blog\/docker-and-containers-technology\/\" class=\"gdlr-button small excerpt-read-more\">Read More<\/a><\/p>\n","protected":false},"author":37,"featured_media":8362,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1534],"tags":[1545,1538,1547,1539,1535,1544,1541,1540,1542,1543,1546,1536,1537],"class_list":["post-8361","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology","tag-advantages-of-docker-containers","tag-client-server-architecture","tag-containers-technology","tag-docker","tag-docker-and-containers","tag-docker-cloud","tag-docker-engine","tag-docker-host-structure","tag-docker-hub","tag-docker-storage","tag-docker-technology","tag-dockerfiles","tag-virtualisation"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.esds.co.in\/blog\/wp-json\/wp\/v2\/posts\/8361","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esds.co.in\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.esds.co.in\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.esds.co.in\/blog\/wp-json\/wp\/v2\/users\/37"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esds.co.in\/blog\/wp-json\/wp\/v2\/comments?post=8361"}],"version-history":[{"count":6,"href":"https:\/\/www.esds.co.in\/blog\/wp-json\/wp\/v2\/posts\/8361\/revisions"}],"predecessor-version":[{"id":8702,"href":"https:\/\/www.esds.co.in\/blog\/wp-json\/wp\/v2\/posts\/8361\/revisions\/8702"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.esds.co.in\/blog\/wp-json\/wp\/v2\/media\/8362"}],"wp:attachment":[{"href":"https:\/\/www.esds.co.in\/blog\/wp-json\/wp\/v2\/media?parent=8361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esds.co.in\/blog\/wp-json\/wp\/v2\/categories?post=8361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esds.co.in\/blog\/wp-json\/wp\/v2\/tags?post=8361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}