{"id":3523,"date":"2019-02-07T07:00:10","date_gmt":"2019-02-07T01:30:10","guid":{"rendered":"http:\/\/www.upnxtblog.com\/?p=3523"},"modified":"2020-04-23T12:28:22","modified_gmt":"2020-04-23T06:58:22","slug":"docker-tutorial-build-docker-image-for-your-database-application","status":"publish","type":"post","link":"https:\/\/www.upnxtblog.com\/index.php\/2019\/02\/07\/docker-tutorial-build-docker-image-for-your-database-application\/","title":{"rendered":"Docker tutorial &#8211; Build Docker image for your Database application"},"content":{"rendered":"<div class='booster-block booster-read-block'><\/div><p><strong>Docker<\/strong> as we know, is an open platform for developers and sysadmins to build, ship, and run distributed applications, whether on laptops, data center VMs, or the cloud. In this post, we are going to take look at how to build a Docker image for Database application.<\/p>\n\n<h2>Step #1. Setup Docker<\/h2>\n<ol style=\"list-style-type: lower-alpha;\">\n<li>From the docker site, install the latest version of the docker for your <a href=\"https:\/\/docs.docker.com\/engine\/installation\/\" target=\"_blank\" rel=\"noopener\">platform<\/a>. Docker is available in two editions: Community Edition (CE) and Enterprise Edition (EE). Docker Community Edition (CE) is ideal for developers and small teams looking to get started with Docker and experimenting with container-based apps. Docker Enterprise Edition (EE) is designed for enterprise development and IT teams who build, ship, and run business-critical applications in production at scale.<\/li>\n<li>Once the installation of docker is over, check the installation by running following command <em>docker run hello-world<\/em>:\n<p><figure id=\"attachment_2934\" aria-describedby=\"caption-attachment-2934\" style=\"width: 721px\" class=\"wp-caption alignnone\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"2934\" data-permalink=\"https:\/\/www.upnxtblog.com\/index.php\/2018\/09\/19\/docker-tutorial-build-docker-image-for-your-angular-6-application\/dock14\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock14.png?fit=721%2C414&amp;ssl=1\" data-orig-size=\"721,414\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"dock14\" data-image-description=\"&lt;p&gt;Validate Docker Installation&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Image &amp;#8211; Validate Docker Installation&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock14.png?fit=721%2C414&amp;ssl=1\" class=\"wp-image-2934 size-full lazyload\" data-src=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock14.png?resize=721%2C414\" alt=\"Validate Docker Installation\" width=\"721\" height=\"414\" data-srcset=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock14.png?w=721&amp;ssl=1 721w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock14.png?resize=300%2C172&amp;ssl=1 300w\" data-sizes=\"auto, (max-width: 721px) 100vw, 721px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 721px; --smush-placeholder-aspect-ratio: 721\/414;\" \/><figcaption id=\"caption-attachment-2934\" class=\"wp-caption-text\">Image &#8211; Validate Docker Installation<\/figcaption><\/figure><\/li>\n<li>Run <em>docker &#8211;version<\/em> to check the version of the docker you\u2019re running.\n<p><figure id=\"attachment_2935\" aria-describedby=\"caption-attachment-2935\" style=\"width: 472px\" class=\"wp-caption alignnone\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"2935\" data-permalink=\"https:\/\/www.upnxtblog.com\/index.php\/2018\/09\/19\/docker-tutorial-build-docker-image-for-your-angular-6-application\/dock15\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock15.png?fit=472%2C52&amp;ssl=1\" data-orig-size=\"472,52\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"dock15\" data-image-description=\"&lt;p&gt;Check Docker version&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Image &amp;#8211; Check Docker version&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock15.png?fit=472%2C52&amp;ssl=1\" class=\"wp-image-2935 size-full lazyload\" data-src=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock15.png?resize=472%2C52\" alt=\"Check Docker version\" width=\"472\" height=\"52\" data-srcset=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock15.png?w=472&amp;ssl=1 472w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock15.png?resize=300%2C33&amp;ssl=1 300w\" data-sizes=\"auto, (max-width: 472px) 100vw, 472px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 472px; --smush-placeholder-aspect-ratio: 472\/52;\" \/><figcaption id=\"caption-attachment-2935\" class=\"wp-caption-text\">Image &#8211; Check Docker version<\/figcaption><\/figure><\/li>\n<\/ol>\n<p>OK, now we have got the docker setup, the next step is to define the docker container.<\/p>\n<h2>Step #2. Create Dockerfile for our container<\/h2>\n<ol style=\"list-style-type: lower-alpha;\">\n<li style=\"list-style-type: none;\">\n<ol style=\"list-style-type: lower-alpha;\">\n<li>Dockerfile will define what goes on in the environment inside the container. Access to resources like networking interfaces and disk drives is virtualized inside this environment, which is isolated from the rest of the system, so you have to map ports to the outside world, and be specific about what files you want to \u201ccopy in\u201d to that environment. So that you can expect that the build of your app defined in this Dockerfile will behave exactly the same wherever it runs.<\/li>\n<li>Common Dockerfile instructions start with RUN, ENV, FROM, MAINTAINER, ADD, and CMD, among others.\n<ul>\n<li>FROM\u00a0&#8211; <em>Specifies the base image that the Dockerfile will use to build a new image. As an example, we are going to use phusion\/baseimage as our base image (this is minimal Ubuntu-based image)<\/em><\/li>\n<li>MAINTAINER\u00a0&#8211; <em>Specifies the Dockerfile Author Name and his\/her email.<\/em><\/li>\n<li>RUN\u00a0&#8211; <em>Runs any UNIX command to build the image.<\/em><\/li>\n<li>ENV\u00a0&#8211; <em>Sets the environment variables. For this post,\u00a0JAVA_HOME\u00a0is the variable that is set.<\/em><\/li>\n<li>CMD\u00a0&#8211; <em>Provides the facility to run commands at the start of the container. This can be overridden upon executing the docker run command.<\/em><\/li>\n<li>ADD\u00a0&#8211;<em> This instruction copies the new files, directories into the Docker container file system at a specified destination.<\/em><\/li>\n<li>EXPOSE\u00a0&#8211; <em>This instruction exposes a specified port to the host machine.<\/em><\/li>\n<\/ul>\n<\/li>\n<li>To begin with, create a new folder and then create a file in it named \u201cDockerfile\u201d with the following content. Here I have used Postgres as an example.\n<pre># Dockerfile\r\nFROM postgres:9.5\r\nMAINTAINER  Author Name author@email.com<\/pre>\n<\/li>\n<li>Once we have the baseimage set, the next step is to do initialization steps like creation of db,users etc.,\n<pre>#init.sql to create database\r\nCOPY init.sql \/docker-entrypoint-initdb.d\/<\/pre>\n<pre># Adjust PostgreSQL configuration to accept remote connections \r\nRUN echo \"host all  all    0.0.0.0\/0  md5\" &gt;&gt; \/var\/lib\/postgresql\/data\/pg_hba.conf\r\nRUN echo \"listen_addresses='*'\" &gt;&gt; \/var\/lib\/postgresql\/data\/postgresql.conf<\/pre>\n<\/li>\n<li>\u00a0Below is sample <code>init.sql<\/code>\u00a0that would have statements to create the database like the one below\n<pre>CREATE DATABASE testdb;<\/pre>\n<\/li>\n<li>Then coming back to Dockerfile, add expose port command as final statement\n<pre>#expose port\r\nEXPOSE 5372\r\n<\/pre>\n<\/li>\n<li>Our Docker file would now be looking like the one below<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<pre>FROM postgres:9.5\r\n#init.sql to create database\r\nCOPY init.sql \/docker-entrypoint-initdb.d\/\r\n\r\n\r\n# Adjust PostgreSQL configuration to accept remote connections \r\nRUN echo \"host all  all    0.0.0.0\/0  md5\" &gt;&gt; \/var\/lib\/postgresql\/data\/pg_hba.conf\r\n\r\nRUN echo \"listen_addresses='*'\" &gt;&gt; \/var\/lib\/postgresql\/data\/postgresql.conf\r\n\r\n# expose port\r\nEXPOSE 5432<\/pre>\n<h2>Step #3. Build\u00a0Docker Image<\/h2>\n<p>Now that we have completed Dockerfile, next step is to build Docker image by <em>docker build command\u00a0<\/em><\/p>\n<pre>docker build -f DBDockerfile -t postgresdb .<\/pre>\n<p>Here<code> -t<\/code> specifies the name of the image and <code>-f<\/code> specifies the name of the Dockerfile. Image tag I have left it empty.<\/p>\n<figure id=\"attachment_3526\" aria-describedby=\"caption-attachment-3526\" style=\"width: 829px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"3526\" data-permalink=\"https:\/\/www.upnxtblog.com\/index.php\/2019\/02\/07\/docker-tutorial-build-docker-image-for-your-database-application\/dbdock1\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2019\/01\/dbdock1.png?fit=829%2C492&amp;ssl=1\" data-orig-size=\"829,492\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"dbdock1\" data-image-description=\"&lt;p&gt;Docker build complete&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Image &amp;#8211; Docker build complete&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2019\/01\/dbdock1.png?fit=829%2C492&amp;ssl=1\" class=\"size-full wp-image-3526 lazyload\" data-src=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2019\/01\/dbdock1.png?resize=829%2C492\" alt=\"Docker build complete\" width=\"829\" height=\"492\" data-srcset=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2019\/01\/dbdock1.png?w=829&amp;ssl=1 829w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2019\/01\/dbdock1.png?resize=300%2C178&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2019\/01\/dbdock1.png?resize=768%2C456&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2019\/01\/dbdock1.png?resize=600%2C356&amp;ssl=1 600w\" data-sizes=\"auto, (max-width: 829px) 100vw, 829px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 829px; --smush-placeholder-aspect-ratio: 829\/492;\" \/><figcaption id=\"caption-attachment-3526\" class=\"wp-caption-text\">Image &#8211; Docker build complete<\/figcaption><\/figure>\n<p><em>Congrats! You&#8217;ve successfully built a container for your Database application.<\/em><\/p>\n<h2>Step #4. Test Docker Image<\/h2>\n<p>To run the Docker image, execute the following commands<\/p>\n<pre>docker run -p 5372:5372 postgresdb<\/pre>\n<p>Here <code>-p<\/code> specifies the port container: host mapping.<\/p>\n<p><em>Congrats! You&#8217;ve successfully built and run container for your Database application.<\/em><\/p>\n<h2>Step #6. Docker Compose Configuration<\/h2>\n<p>If you&#8217;re looking for running multi-container applications using <a href=\"https:\/\/docs.docker.com\/compose\/\" target=\"_blank\" rel=\"noopener\">Docker Compose<\/a> tool then the configuration is as easy, there would be YAML file to configure your application\u2019s services\/networks\/volumes, etc., Then, with a single command, you can create and start all the services from the compose configuration.<\/p>\n<p>Here are the key steps :<\/p>\n<ol>\n<li>Define\u00a0<code class=\"highlighter-rouge\">Dockerfile<\/code>\u00a0for your container(s).<\/li>\n<li>Define\u00a0<code class=\"highlighter-rouge\">docker-compose.yml<\/code>\u00a0for the services that make up your application services.<\/li>\n<li>Run\u00a0<code class=\"highlighter-rouge\">docker-compose up<\/code>\u00a0and Compose starts and runs your entire app.<\/li>\n<\/ol>\n<p>Sample\u00a0<code class=\"highlighter-rouge\">docker-compose.yml<\/code> for Angular UI application would look like this:<\/p>\n<pre>version: '3'\r\nservices:\u00a0\r\n  postgresdb:\r\n   build:\r\n   context: .\r\n   dockerfile: DBDockerfile\r\n    volumes:\r\n           - 'postgresdb:\/var\/lib\/postgresql\/data'\r\n    environment:\r\n           POSTGRES_USER: postgres\r\n           POSTGRES_PASSWORD: postgres\r\n           POSTGRES_DB: testdb\r\n    ports:\r\n           - '5432:5432'\r\n    healthcheck:\r\n            test:\r\n                - CMD-SHELL\r\n                - 'pg_isready -U postgres'\r\n            interval: 10s\r\n            timeout: 5s\r\n            retries: 5\r\n    networks:\r\n     - samplenet\r\nnetworks:\r\n    samplenet: null\r\nvolumes:\r\n    postgresdb: {}\r\n\r\n<\/pre>\n<p>For database services, volumes need to be mounted so that data can be persisted. Also, you can have healthcheck section to check the health of the database at regular intervals.<\/p>\n<p>To scale services using Docker compose refer <a href=\"http:\/\/www.upnxtblog.com\/index.php\/2018\/10\/11\/how-to-scale-services-using-docker-compose\/\">here<\/a>. There is much more to the Docker platform than what was covered here, but now you would have got a good idea of the basics of building containers for an application.<\/p>\n<p><em><strong>Like this post? Don\u2019t forget to share it!<\/strong><\/em><\/p>\n<h2>Additional Resources:<\/h2>\n<ul>\n<li><a href=\"https:\/\/docs.docker.com\/reference\/builder\/\" target=\"_blank\" rel=\"noopener\">Official documentation<\/a> as a reference to understand any command.<\/li>\n<li><a title=\"Docker build reference\" href=\"https:\/\/docs.docker.com\/engine\/reference\/commandline\/build\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker build reference<\/a><\/li>\n<li><a title=\"Docker run reference\" href=\"https:\/\/docs.docker.com\/engine\/reference\/run\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker run reference<\/a><\/li>\n<li><a href=\"https:\/\/www.upnxtblog.com\/index.php\/2018\/01\/17\/top-6-gui-tools-for-managing-docker-environments\/\">TOP 6 GUI tools for managing Docker environments<\/a><\/li>\n<li><a href=\"https:\/\/www.upnxtblog.com\/index.php\/2017\/11\/29\/docker-tutorial-build-docker-image-for-your-java-application\/\">Docker tutorial \u2013 Build Docker image for your Java application<\/a><\/li>\n<li><a href=\"https:\/\/docs.docker.com\/articles\/dockerfile_best-practices\/\" target=\"_blank\" rel=\"noopener\">Best Practices<\/a> article on writing Docker files.<\/li>\n<li><a href=\"https:\/\/docs.docker.com\/\" target=\"_blank\" rel=\"noopener\">Test<\/a> your knowledge of Dockerfile.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Docker as we know, is an open platform for developers and sysadmins to build, ship, and run distributed applications, whether on laptops, data center VMs, or the cloud. In this post, we are going to take look at how to build a Docker image for Database application. Step #1. Setup Docker From the docker site, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1061,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Docker tutorial - Build Docker image for your Database application","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[310,146,37],"tags":[53,322],"class_list":["post-3523","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-docker","category-cloud","category-how-to-guides","tag-docker","tag-postgresdb"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/docker_facebook_share.png?fit=336%2C287&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9fbQS-UP","jetpack-related-posts":[{"id":2929,"url":"https:\/\/www.upnxtblog.com\/index.php\/2018\/09\/19\/docker-tutorial-build-docker-image-for-your-angular-6-application\/","url_meta":{"origin":3523,"position":0},"title":"Docker tutorial &#8211; Build Docker image for your Angular 6 application","author":"Karthik","date":"September 19, 2018","format":false,"excerpt":"Docker as we know, is an open platform for developers and sysadmins to build, ship, and run distributed applications, whether on laptops, data center VMs, or the cloud. In this post, we are going to take look at how to build a Docker image for Angular application (typically the steps\u2026","rel":"","context":"In &quot;Docker Guides&quot;","block_context":{"text":"Docker Guides","link":"https:\/\/www.upnxtblog.com\/index.php\/category\/docker\/"},"img":{"alt_text":"Validate Docker Installation","src":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock14.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock14.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock14.png?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock14.png?resize=700%2C400 2x"},"classes":[]},{"id":2273,"url":"https:\/\/www.upnxtblog.com\/index.php\/2018\/04\/11\/create-docker-images-using-multi-stage-builds\/","url_meta":{"origin":3523,"position":1},"title":"Docker tutorial &#8211; Create Docker Images using Multi-stage builds","author":"Karthik","date":"April 11, 2018","format":false,"excerpt":"From the last post, we have understood what is container & why do we use containers in general. Just to recap here are some of the key points Containers are an abstraction at the app layer that packages code and dependencies together. Multiple containers can run on the same machine\u2026","rel":"","context":"In &quot;Docker Guides&quot;","block_context":{"text":"Docker Guides","link":"https:\/\/www.upnxtblog.com\/index.php\/category\/docker\/"},"img":{"alt_text":"Docker","src":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/dock1.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/dock1.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/dock1.png?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/dock1.png?resize=700%2C400 2x"},"classes":[]},{"id":2913,"url":"https:\/\/www.upnxtblog.com\/index.php\/2018\/09\/12\/how-to-install-docker-on-ubuntu\/","url_meta":{"origin":3523,"position":2},"title":"How to install Docker on Ubuntu ?","author":"Karthik","date":"September 12, 2018","format":false,"excerpt":"Docker as we know, is an open platform for developers and sysadmins to build, ship, and run distributed applications, whether on laptops, data center VMs, or the cloud. In this post, we are going to take look at how to install Docker on Ubuntu 18 LTS. Requisites Ubuntu OS requirements:\u2026","rel":"","context":"In &quot;Docker Guides&quot;","block_context":{"text":"Docker Guides","link":"https:\/\/www.upnxtblog.com\/index.php\/category\/docker\/"},"img":{"alt_text":"Uninstall Docker","src":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock1.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock1.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock1.png?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2018\/09\/dock1.png?resize=700%2C400 2x"},"classes":[]},{"id":2336,"url":"https:\/\/www.upnxtblog.com\/index.php\/2018\/04\/20\/docker-tutorial-swarm-mode\/","url_meta":{"origin":3523,"position":3},"title":"Docker tutorial &#8211; Create,Add Nodes,Deploy and Scale service on the Swarm","author":"Karthik","date":"April 20, 2018","format":false,"excerpt":"From the last post, we have understood what is container & why do we use containers in general. Just to recap here are some of the key points Containers are an abstraction at the app layer that packages code and dependencies together. Multiple containers can run on the same machine\u2026","rel":"","context":"In &quot;Docker Guides&quot;","block_context":{"text":"Docker Guides","link":"https:\/\/www.upnxtblog.com\/index.php\/category\/docker\/"},"img":{"alt_text":"Docker","src":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/dock1.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/dock1.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/dock1.png?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/dock1.png?resize=700%2C400 2x"},"classes":[]},{"id":928,"url":"https:\/\/www.upnxtblog.com\/index.php\/2017\/11\/29\/docker-tutorial-build-docker-image-for-your-java-application\/","url_meta":{"origin":3523,"position":4},"title":"Docker tutorial &#8211; Build Docker image for your Java application","author":"Karthik","date":"November 29, 2017","format":false,"excerpt":"From the last post,we have understood what is container and why do we use containers in general. Just to recap here are some of the key points Containers are an abstraction at the app layer that packages code and dependencies together. Multiple containers can run on the same machine and\u2026","rel":"","context":"In &quot;Docker Guides&quot;","block_context":{"text":"Docker Guides","link":"https:\/\/www.upnxtblog.com\/index.php\/category\/docker\/"},"img":{"alt_text":"Docker","src":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/dock1.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/dock1.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/dock1.png?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/dock1.png?resize=700%2C400 2x"},"classes":[]},{"id":3821,"url":"https:\/\/www.upnxtblog.com\/index.php\/2019\/05\/23\/everything-you-need-to-know-about-docker-enterprise-3-0\/","url_meta":{"origin":3523,"position":5},"title":"Everything You Need To Know About Docker Enterprise 3.0","author":"Karthik","date":"May 23, 2019","format":false,"excerpt":"Docker has recently announced Docker Enterprise 3.0, In this post, we take look at the key features of Enterprise Platform on how it improves developer productivity, accelerating time-to-market for new applications. If you're looking for the basic understanding of Docker concepts, please refer to earlier posts for understanding on Docker\u2026","rel":"","context":"In &quot;Docker Guides&quot;","block_context":{"text":"Docker Guides","link":"https:\/\/www.upnxtblog.com\/index.php\/category\/docker\/"},"img":{"alt_text":"Docker Enterprise Platform","src":"https:\/\/i0.wp.com\/blog.docker.com\/wp-content\/uploads\/2019\/04\/3222109f-b13e-4204-bd00-0c2ae19a9b6d-1.jpg?ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.docker.com\/wp-content\/uploads\/2019\/04\/3222109f-b13e-4204-bd00-0c2ae19a9b6d-1.jpg?ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/blog.docker.com\/wp-content\/uploads\/2019\/04\/3222109f-b13e-4204-bd00-0c2ae19a9b6d-1.jpg?ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/blog.docker.com\/wp-content\/uploads\/2019\/04\/3222109f-b13e-4204-bd00-0c2ae19a9b6d-1.jpg?ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/blog.docker.com\/wp-content\/uploads\/2019\/04\/3222109f-b13e-4204-bd00-0c2ae19a9b6d-1.jpg?ssl=1&resize=1050%2C600 3x, https:\/\/i0.wp.com\/blog.docker.com\/wp-content\/uploads\/2019\/04\/3222109f-b13e-4204-bd00-0c2ae19a9b6d-1.jpg?ssl=1&resize=1400%2C800 4x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/posts\/3523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/comments?post=3523"}],"version-history":[{"count":12,"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/posts\/3523\/revisions"}],"predecessor-version":[{"id":5417,"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/posts\/3523\/revisions\/5417"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/media\/1061"}],"wp:attachment":[{"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/media?parent=3523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/categories?post=3523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/tags?post=3523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}