{"id":47,"date":"2015-07-24T08:58:25","date_gmt":"2015-07-24T08:58:25","guid":{"rendered":"http:\/\/www.urolime.com\/blogs\/in\/?p=47"},"modified":"2016-03-28T17:06:52","modified_gmt":"2016-03-28T17:06:52","slug":"docker-tutorial","status":"publish","type":"post","link":"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/","title":{"rendered":"Docker Tutorial"},"content":{"rendered":"<h2>Docker Tutorial<\/h2>\n<p>We hope this docker tutorial will help you to understand some more details about docker and its usage.<\/p>\n<p><a href=\"https:\/\/www.docker.com\/\">Docker<\/a>, the word itself gives the whole meaning of the docker system. We know that it is difficult to clone a specific configuration to somewhere else. The docker makes this very simple. Build, Ship, Run!!! Exact definition for docker. Docker is an open source platform for building, shipping and running distributed applications. The docker can make your application separate from your infrastructure and can consider your infrastructure as a managed application. It is speed and reducing the time between coding and executing makes docker successful.<\/p>\n<p><b>Understand Architecture<\/b><\/p>\n<p>As we have said already in this docker tutorial, the docker improves the speed of implementation. This is achieved by combining lightweight virtualization platform with workflows and tooling which helps you to deploy applications.The isolation and security are the main features of docker system. The lightweight nature of containers, which run without the extra load of a hypervisor, means you can get more out of your hardware. Surrounding the container virtualization are tooling and a platform which can help you in several ways:<\/p>\n<ol>\n<li><b><\/b>Dockerize your application and components moreover the whole infrastructure .<\/li>\n<\/ol>\n<ol start=\"2\">\n<li>Docker can be distributed to other teams for testing and development.<\/li>\n<\/ol>\n<ol start=\"3\">\n<li><b><\/b>Deployment of application irrespective of node platform.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p><b>Why should we use Container virtualization?<\/b><\/p>\n<p>The development lifecycle can be easily completed using Docker. Docker allows your developers to develop on local containers that contain your applications and services. It can then integrate into a continuous integration and deployment workflow.<\/p>\n<p><b>Docker\u2019s architecture!<\/b><\/p>\n<ol>\n<li>Docker daemon<\/li>\n<\/ol>\n<p>This is something which runs on the node machine. User can interact with daemon using docker client.<\/p>\n<ol start=\"2\">\n<li>Docker Client<\/li>\n<\/ol>\n<p>It is the user interface of docker. It act as the communication link between the user and daemon.<\/p>\n<ol start=\"3\">\n<li><b><\/b>What&#8217;s inside Docker ?<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p><b>Docker images.<\/b><\/p>\n<p>A Docker image is a read-only template. For example, an image could contain an Ubuntu operating system with Apache and your web application installed. Images are used to create Docker containers. Docker provides a simple way to build new images or update existing images, or you can download Docker images that other people have already created. Docker images are the build component of Docker.<\/p>\n<p><b>Docker registries.<\/b><\/p>\n<p>Docker registries hold images. These are public or private stores from which you upload or download images. The public Docker registry is called Docker Hub. It provides a huge collection of existing images for your use. These can be images you create yourself or you can use images that others have previously created. Docker registries are the distribution component of Docker.<\/p>\n<p><b>Docker containers.<\/b><\/p>\n<p>Docker containers are similar to a directory. A Docker container holds everything that is needed for an application to run. Each container is created from a Docker image. Docker containers can be run, started, stopped, moved, and deleted. Each container is an isolated and secure application platform. Docker containers are the run component of Docker.<\/p>\n<p><b>Exploring working.<\/b><\/p>\n<p>The docker container is created from read-only templates. Each image consists of a series of layers. Docker makes use of union file systems to combine these layers into a single image. Union file systems allow files and directories of separate file systems, known as branches, to be transparently overlaid, forming a single coherent file system. While creating a docker container we can either use templates which are downloaded already or directly pull while running it. There are wide variety of option which can be used while creating a container. The options like binding a port, defining interactive , tty, container name, Once created we can attach the docker container.<\/p>\n<p><b>The underlying technology<\/b><\/p>\n<p><b>Namespaces<\/b><\/p>\n<p>Docker takes advantage of a technology called namespaces to provide the isolated workspace we call the container. When you run a container, Docker creates a set of namespaces for that container.<\/p>\n<p>This provides a layer of isolation: each aspect of a container runs in its own namespace and does not have access outside it.<\/p>\n<p>Some of the namespaces that Docker uses are:<\/p>\n<p>The pid namespace: Used for process isolation (PID: Process ID).<\/p>\n<p>The net namespace: Used for managing network interfaces (NET: Networking).<\/p>\n<p>The ipc namespace: Used for managing access to IPC resources (IPC: InterProcess Communication).<\/p>\n<p>The mnt namespace: Used for managing mount-points (MNT: Mount).<\/p>\n<p>The uts namespace: Used for isolating kernel and version identifiers. (UTS: Unix Timesharing System).<\/p>\n<p><b>Control groups<\/b><\/p>\n<p>Docker also makes use of another technology called cgroups or control groups. A key to running applications in isolation is to have them only use the resources you want. This ensures containers are good multi-tenant citizens on a host. Control groups allow Docker to share available hardware resources to containers and, if required, set up limits and constraints. For example, limiting the memory available to a specific container.<\/p>\n<p><b>Union file systems<\/b><\/p>\n<p>Union file systems, or UnionFS, are file systems that operate by creating layers, making them very lightweight and fast. Docker uses union file systems to provide the building blocks for containers. Docker can make use of several union file system variants including: AUFS, btrfs, vfs, and DeviceMapper.<\/p>\n<p><b>Container format<\/b><\/p>\n<p>Docker combines these components into a wrapper we call a container format. The default container format is called libcontainer. Docker also supports traditional Linux containers using LXC. In the future, Docker may support other container formats, for example, by integrating with BSD Jails or Solaris Zones.<\/p>\n<p><b>Installation <\/b><\/p>\n<p>The docker can be installed using Yum on Centos and apt-get on Ubuntu. Just need to add corresponding sources\/repos.<\/p>\n<p>Managing docker<\/p>\n<p>We can start and stop the docker service using commands as follows.<\/p>\n<p>start docker<\/p>\n<p>stop docker<\/p>\n<p>The docker system is accessible only when the service is running.<\/p>\n<p>Docker Images<\/p>\n<p>Docker hub provides predefined images which can be used for creating containers.<\/p>\n<p>docker search &lt;image_name&gt; # search for an image from docker hub<\/p>\n<p>and docker pull &lt;image_name&gt; pull the image from docker hub<\/p>\n<p>Eg::<\/p>\n<p>docker search ubuntu<\/p>\n<p>docker pull ubuntu<\/p>\n<p><strong>Note:<\/strong> Please read the description completely before downloading images. It is recommended to download images with high star count and &#8216;OK&#8217; OFFICIAL status.<\/p>\n<p>Container Creation<\/p>\n<p>We can create a docker container as follows<\/p>\n<p>docker run -i -t &#8211;name &lt;container_name&gt; &lt;image_name&gt; &lt;process\/tty&gt;<\/p>\n<p># -i interactive<\/p>\n<p># -t specify tty<\/p>\n<p><b>E.g. :: Creating a docker container with ubuntu image<\/b><\/p>\n<p>docker run -i -t &#8211;name testcontainer ubuntu \/bin\/bash<\/p>\n<p>This command will create a docker container with interactive mode. Use Ctrl+p+q to exit from the container without killing the process<\/p>\n<p>Port binding and Ip assignment.<\/p>\n<p>The ports actually bind to a specific port of the node server. The connections to a port to a corresponding IP in the node is routed to a specific port in the container. In this way the connections to the port of the node to the IP will be directed to the specific port on the container. We route port ranges between the docker container and an IP (provided the services in node server with the corresponding ports are listening only to the main IP address of the server.<\/p>\n<p><strong> Format:: <\/strong><\/p>\n<p>docker run -i -t &#8211;name -p &lt;IP&gt;:&lt;node_port&gt;:&lt;container_port&gt; &lt;container_name&gt; &lt;image_name&gt; &lt;process\/tty&gt;<\/p>\n<p>Note:: For all following examples, we use xxx.xxx.xxx.xxx and xxx.xxx.xxx.yyy as additional IPs in the docker node<\/p>\n<p>E.g. 1 ::<\/p>\n<p>docker run -i -t -p xxx.xxx.xxx.xxx:80:80 -p xxx.xxx.xxx.xxx:22:22 -p xxx.xxx.xxx.xxx:3307:3306 &#8211;name custom_name centos\/ssh \/bin\/bash<\/p>\n<p>Format<\/p>\n<p>IP:Node Port:Container Port<\/p>\n<p>xxx.xxx.xxx.xxx:80:80<\/p>\n<p>xxx.xxx.xxx.xxx:22:22<\/p>\n<p>xxx.xxx.xxx.xxx:3307:3306<\/p>\n<p><strong> E.g. 2 ::<\/strong><\/p>\n<p>docker run -i -t -p xxx.xxx.xxx.yyy:20-50:20-50 &#8211;name portmap ubuntu \/bin\/bash<\/p>\n<p>This will map ports 20 to 50 between the docker container and the IP \u201a\u00c4\u00f2xxx.xxx.xxx.yyy\u201a\u00c4\u00f4<\/p>\n<ol>\n<li>Miscellaneous<\/li>\n<\/ol>\n<p>docker images #: to list docker images<\/p>\n<p>docker save &lt;image_name&gt; &gt; &lt;backup_name&gt;.tar # backup an image<\/p>\n<p>docker load -i &lt;backup_name&gt;.tar # load a saved image<\/p>\n<p>docker ps # to show running docker containers<\/p>\n<p>docker ps -a # to show all containers including stopped ones<\/p>\n<p>docker rm -f &lt;container name&gt; # to delete a container<\/p>\n<p>docker rmi &lt;delete a image&gt; # to delete a image<\/p>\n<p>docker start &lt;container name&gt; # to start container<\/p>\n<p>docker attach &lt;id\/name&gt; # to attach a docker session<\/p>\n<p>docker info # to get the information of docker server<\/p>\n<p>Source: https:\/\/www.docker.com\/<\/p>\n<p><b>Docker Tutorial Conclusion<\/b><\/p>\n<p>The docker is the fundamental building block of distributed container deployments. It simplifyes the process of packing of application along with its components, scaling becomes a simple process of spinning up or shutting down multiple instances of each component. The Docker provides us with feature of sharing and management of containers.<\/p>\n<p>While containerized applications provide the necessary process isolation and packaging to assist in deployment, there are many other components necessary to adequately manage and scale containers over a distributed cluster of hosts.<\/p>\n<p>Hope this docker tutorial helped you to get some basic ideas about docker. If you have any questions about this docker tutorial please let us know.<\/p>\n<p>Please share this docker tutorial knowledge.<\/p>\n<p>&nbsp;<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_47\" class=\"pvc_stats all  \" data-element-id=\"47\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/www.urolime.com\/blogs\/in\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Docker Tutorial We hope this docker tutorial will help you to understand some more details about docker and its usage. Docker, the word itself gives the whole meaning of the docker system. We know that it is difficult to clone a specific configuration to somewhere else. The docker makes this very simple. Build, Ship, Run!!! [&hellip;]<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_47\" class=\"pvc_stats all  \" data-element-id=\"47\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/www.urolime.com\/blogs\/in\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":2,"featured_media":75,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-47","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-general"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.3.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Docker Tutorial<\/title>\n<meta name=\"description\" content=\"Docker Tutorial\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker Tutorial\" \/>\n<meta property=\"og:description\" content=\"Docker Tutorial\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/\" \/>\n<meta property=\"og:site_name\" content=\"Urolime Blogs\" \/>\n<meta property=\"article:published_time\" content=\"2015-07-24T08:58:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-03-28T17:06:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.urolime.com\/blogs\/in\/wp-content\/uploads\/sites\/9\/2015\/07\/docker.png\" \/>\n\t<meta property=\"og:image:width\" content=\"698\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"urolime\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"urolime\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/\"},\"author\":{\"name\":\"urolime\",\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/#\/schema\/person\/cbae3669d3b8735433292dca75df66a5\"},\"headline\":\"Docker Tutorial\",\"datePublished\":\"2015-07-24T08:58:25+00:00\",\"dateModified\":\"2016-03-28T17:06:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/\"},\"wordCount\":1540,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.urolime.com\/blogs\/in\/wp-content\/uploads\/sites\/9\/2015\/07\/docker.png\",\"articleSection\":[\"General\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/\",\"url\":\"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/\",\"name\":\"Docker Tutorial\",\"isPartOf\":{\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.urolime.com\/blogs\/in\/wp-content\/uploads\/sites\/9\/2015\/07\/docker.png\",\"datePublished\":\"2015-07-24T08:58:25+00:00\",\"dateModified\":\"2016-03-28T17:06:52+00:00\",\"description\":\"Docker Tutorial\",\"breadcrumb\":{\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/#primaryimage\",\"url\":\"https:\/\/www.urolime.com\/blogs\/in\/wp-content\/uploads\/sites\/9\/2015\/07\/docker.png\",\"contentUrl\":\"https:\/\/www.urolime.com\/blogs\/in\/wp-content\/uploads\/sites\/9\/2015\/07\/docker.png\",\"width\":698,\"height\":400,\"caption\":\"docker\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.urolime.com\/blogs\/in\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker Tutorial\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/#website\",\"url\":\"https:\/\/www.urolime.com\/blogs\/in\/\",\"name\":\"Urolime Blogs\",\"description\":\"The place for DevOps, Cloud, Kubernetes News and Updates\",\"publisher\":{\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.urolime.com\/blogs\/in\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/#organization\",\"name\":\"Urolime Blogs\",\"url\":\"https:\/\/www.urolime.com\/blogs\/in\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.urolime.com\/blogs\/in\/wp-content\/uploads\/sites\/9\/2021\/06\/cropped-250-x250.jpg\",\"contentUrl\":\"https:\/\/www.urolime.com\/blogs\/in\/wp-content\/uploads\/sites\/9\/2021\/06\/cropped-250-x250.jpg\",\"width\":250,\"height\":73,\"caption\":\"Urolime Blogs\"},\"image\":{\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.urolime.com\/blogs\/in\/#\/schema\/person\/cbae3669d3b8735433292dca75df66a5\",\"name\":\"urolime\",\"url\":\"https:\/\/www.urolime.com\/blogs\/in\/author\/urolime\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Docker Tutorial","description":"Docker Tutorial","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/","og_locale":"en_US","og_type":"article","og_title":"Docker Tutorial","og_description":"Docker Tutorial","og_url":"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/","og_site_name":"Urolime Blogs","article_published_time":"2015-07-24T08:58:25+00:00","article_modified_time":"2016-03-28T17:06:52+00:00","og_image":[{"width":698,"height":400,"url":"https:\/\/www.urolime.com\/blogs\/in\/wp-content\/uploads\/sites\/9\/2015\/07\/docker.png","type":"image\/png"}],"author":"urolime","twitter_card":"summary_large_image","twitter_misc":{"Written by":"urolime","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/#article","isPartOf":{"@id":"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/"},"author":{"name":"urolime","@id":"https:\/\/www.urolime.com\/blogs\/in\/#\/schema\/person\/cbae3669d3b8735433292dca75df66a5"},"headline":"Docker Tutorial","datePublished":"2015-07-24T08:58:25+00:00","dateModified":"2016-03-28T17:06:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/"},"wordCount":1540,"commentCount":0,"publisher":{"@id":"https:\/\/www.urolime.com\/blogs\/in\/#organization"},"image":{"@id":"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/www.urolime.com\/blogs\/in\/wp-content\/uploads\/sites\/9\/2015\/07\/docker.png","articleSection":["General"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/","url":"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/","name":"Docker Tutorial","isPartOf":{"@id":"https:\/\/www.urolime.com\/blogs\/in\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/#primaryimage"},"image":{"@id":"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/www.urolime.com\/blogs\/in\/wp-content\/uploads\/sites\/9\/2015\/07\/docker.png","datePublished":"2015-07-24T08:58:25+00:00","dateModified":"2016-03-28T17:06:52+00:00","description":"Docker Tutorial","breadcrumb":{"@id":"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/#primaryimage","url":"https:\/\/www.urolime.com\/blogs\/in\/wp-content\/uploads\/sites\/9\/2015\/07\/docker.png","contentUrl":"https:\/\/www.urolime.com\/blogs\/in\/wp-content\/uploads\/sites\/9\/2015\/07\/docker.png","width":698,"height":400,"caption":"docker"},{"@type":"BreadcrumbList","@id":"https:\/\/www.urolime.com\/blogs\/in\/docker-tutorial\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.urolime.com\/blogs\/in\/"},{"@type":"ListItem","position":2,"name":"Docker Tutorial"}]},{"@type":"WebSite","@id":"https:\/\/www.urolime.com\/blogs\/in\/#website","url":"https:\/\/www.urolime.com\/blogs\/in\/","name":"Urolime Blogs","description":"The place for DevOps, Cloud, Kubernetes News and Updates","publisher":{"@id":"https:\/\/www.urolime.com\/blogs\/in\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.urolime.com\/blogs\/in\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.urolime.com\/blogs\/in\/#organization","name":"Urolime Blogs","url":"https:\/\/www.urolime.com\/blogs\/in\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.urolime.com\/blogs\/in\/#\/schema\/logo\/image\/","url":"https:\/\/www.urolime.com\/blogs\/in\/wp-content\/uploads\/sites\/9\/2021\/06\/cropped-250-x250.jpg","contentUrl":"https:\/\/www.urolime.com\/blogs\/in\/wp-content\/uploads\/sites\/9\/2021\/06\/cropped-250-x250.jpg","width":250,"height":73,"caption":"Urolime Blogs"},"image":{"@id":"https:\/\/www.urolime.com\/blogs\/in\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.urolime.com\/blogs\/in\/#\/schema\/person\/cbae3669d3b8735433292dca75df66a5","name":"urolime","url":"https:\/\/www.urolime.com\/blogs\/in\/author\/urolime\/"}]}},"_links":{"self":[{"href":"https:\/\/www.urolime.com\/blogs\/in\/wp-json\/wp\/v2\/posts\/47","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.urolime.com\/blogs\/in\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.urolime.com\/blogs\/in\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.urolime.com\/blogs\/in\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.urolime.com\/blogs\/in\/wp-json\/wp\/v2\/comments?post=47"}],"version-history":[{"count":9,"href":"https:\/\/www.urolime.com\/blogs\/in\/wp-json\/wp\/v2\/posts\/47\/revisions"}],"predecessor-version":[{"id":149,"href":"https:\/\/www.urolime.com\/blogs\/in\/wp-json\/wp\/v2\/posts\/47\/revisions\/149"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.urolime.com\/blogs\/in\/wp-json\/wp\/v2\/media\/75"}],"wp:attachment":[{"href":"https:\/\/www.urolime.com\/blogs\/in\/wp-json\/wp\/v2\/media?parent=47"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.urolime.com\/blogs\/in\/wp-json\/wp\/v2\/categories?post=47"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.urolime.com\/blogs\/in\/wp-json\/wp\/v2\/tags?post=47"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}