{"id":15816,"date":"2017-01-24T16:15:51","date_gmt":"2017-01-24T14:15:51","guid":{"rendered":"http:\/\/www.webcodegeeks.com\/?p=15816"},"modified":"2017-12-19T12:16:52","modified_gmt":"2017-12-19T10:16:52","slug":"docker-hub-nginx-tutorial","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/","title":{"rendered":"Docker Hub Nginx Tutorial"},"content":{"rendered":"<p>In this tutorial we will see how to take advantage of Docker Hub to deal with Docker images, with an Nginx image, one of the most used web servers in the last times.<\/p>\n<p>For this tutorial, Linux Mint 18 and Docker version 1.12.1 have been used.<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n[ulp id=&#8217;OCKUMTbC259tpbxG&#8217;]<\/p>\n<div class=\"tip\"><strong>Tip<\/strong><br \/>\nYou may skip Docker installation and jump directly to the <a href=\"#section_2\"><strong>beginning of the example<\/strong><\/a> below.<\/div>\n<h2>1. Installation<\/h2>\n<p><strong>Note<\/strong>: Docker requires a 64-bit system with a kernel version equal or higher to 3.10.<\/p>\n<p>We can install Docker simply via <code>apt-get<\/code>, without the need of adding any repository, just installing the <code>docker.io<\/code> package:<\/p>\n<pre class=\"brush:bash\">sudo apt-get update\r\nsudo apt-get install docker.io<\/pre>\n<p>For more details, you can follow the <a href=\"https:\/\/www.webcodegeeks.com\/devops\/install-docker-ubuntu-tutorial\/\">Install Docker on Ubuntu Tutorial<\/a>.<\/p>\n<h2 id=\"section_2\">2. Pulling the official image<\/h2>\n<p>Before anything, let&#8217;s pull the Nginx official Docker image from <a href=\"https:\/\/hub.docker.com\/_\/nginx\/\">Docker Hub<\/a>:<\/p>\n<pre class=\"brush:bash\">docker pull nginx<\/pre>\n<p>For the latest version. Or, for example, we could pull the stable version:<\/p>\n<pre class=\"brush:bash\">docker pull nginx:stable<\/pre>\n<p>You can check all the releases in the <a href=\"https:\/\/hub.docker.com\/r\/library\/nginx\/tags\/\">tags section<\/a>.<\/p>\n<h2>3. Creating a repository in Docker Hub<\/h2>\n<p>We have to create a repository for our Nginx image. For that, we first need an account at Docker Hub.<\/p>\n<p>Once registered, in the main page, we have to click the &#8220;Create repository&#8221; button. The only required field is the repository name, but it&#8217;s always a good practice to fill the description (Markdown is supported).<\/p>\n<p>For this example, the repository I created is named <code>my-nginx<\/code>. So, the complete repo name would be, in my case, <code>julenpardo\/my-nginx<\/code>.<\/p>\n<h2>4. Making some changes within the container<\/h2>\n<p>Let&#8217;s create a container from our image:<\/p>\n<pre class=\"brush:bash\">docker run -p 8080:80 --name=nginx1 -d nginx<\/pre>\n<p>We can check that it works accessing <code>http:\/\/localhost:8080<\/code> from our browser.<\/p>\n<p>Now, we have a running instance of the official Nginx image, so, it wouldn&#8217;t have much sense to have in our repo the same image as the one hosted by Nginx. So, let&#8217;s made some changes in our running container.<\/p>\n<p>For making changes within our running container, first we need the interactive shell. For that, we have to execute the following:<\/p>\n<pre class=\"brush:bash\">docker exec -it nginx1 \/bin\/bash<\/pre>\n<p>We will install PHP-FPM for serve PHP applications with Nginx:<\/p>\n<pre class=\"brush:bash;wrap-lines:false\">apt-get update\r\napt-get install -y php5-fpm \\\r\n    vim # We need a text editor; you can install your favorite<\/pre>\n<p>Now, we start the process:<\/p>\n<pre class=\"brush:bash\">\/etc\/init.d\/php5-fpm start<\/pre>\n<p>We have to overwrite the configuration for the default site, placed in <code>\/etc\/nginx\/conf.d\/default.conf<\/code>:<\/p>\n<p><span style=\"text-decoration: underline;\"><em>default.conf<\/em><\/span><\/p>\n<pre class=\"brush:bash\">server {\r\n\u00a0\u00a0\u00a0 listen\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 80;\r\n\u00a0\u00a0\u00a0 server_name\u00a0 localhost;\r\n\r\n\u00a0\u00a0\u00a0 root\u00a0\u00a0 \/usr\/share\/nginx\/html;\r\n\u00a0\u00a0\u00a0 index\u00a0 index.html index.htm;\r\n\r\n\u00a0\u00a0\u00a0 error_page\u00a0\u00a0 500 502 503 504\u00a0 \/50x.html;\r\n\u00a0\u00a0\u00a0 location = \/50x.html {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 root\u00a0\u00a0 \/usr\/share\/nginx\/html;\r\n\u00a0\u00a0\u00a0 }\r\n\r\n\u00a0\u00a0\u00a0 location ~ \\.php$ {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 fastcgi_pass\u00a0\u00a0 unix:\/var\/run\/php5-fpm.sock;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 fastcgi_index\u00a0 index.php;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 fastcgi_param\u00a0 SCRIPT_FILENAME\u00a0 \/usr\/share\/nginx\/html$fastcgi_script_name;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 include\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 fastcgi_params;\r\n\u00a0\u00a0\u00a0 }\r\n}<\/pre>\n<p>Finally, we have reload Nginx:<\/p>\n<pre class=\"brush:bash\">service nginx reload<\/pre>\n<p>To test it, we can create a simple PHP script in <code>\/usr\/share\/nginx\/html<\/code>:<\/p>\n<p><span style=\"text-decoration: underline;\"><em>phpinfo.php<\/em><\/span><\/p>\n<pre class=\"brush:php\">&lt;?php\r\n\r\nphpinfo();<\/pre>\n<h2>5. Committing and pushing the changes made within the container<\/h2>\n<p>We have configured our running container to serve as PHP server. If we would remove it and create another container from the same image, the changes would be lost.<\/p>\n<p>For preserving our running container, we can commit the changes made on it, and push it to the Docker Hub (like with Git and remote repositories). The syntax is the following:<\/p>\n<pre class=\"brush:php\">docker commit &lt;container-name|container-id&gt; &lt;repository&gt;<\/pre>\n<p>So, in my case, would just be:<\/p>\n<pre class=\"brush:php\">docker commit nginx1 julenpardo\/my-nginx<\/pre>\n<p>Additionally, we can add messages to the commits, with the <code>-m<\/code> (<code>--message<\/code>) option, which is usually a good idea:<\/p>\n<pre class=\"brush:php\">docker commit -m 'Nginx &amp; PHP FPM' nginx1 julenpardo\/my-nginx<\/pre>\n<p>If we check the existing images (executing <code>docker images<\/code>), we will see that now we have a new image named <code>julenpardo\/my-nginx<\/code>. But, before pushing it to our repo, we need to login, just executing:<\/p>\n<pre class=\"brush:php\">docker login<\/pre>\n<p>Introducing our Docker Hub credentials.<\/p>\n<p>Now, we can push our image to the remote repository on Docker Hub executing:<\/p>\n<pre class=\"brush:php\">docker push julenpardo\/my-nginx # Remember to use your username<\/pre>\n<p>If now, we remove everything:<\/p>\n<pre class=\"brush:php\">docker stop nginx1\r\ndocker rm nginx1\r\ndocker rmi nginx<\/pre>\n<p>And we pull and run our own image:<\/p>\n<pre class=\"brush:php\">docker pull julenpardo\/my-nginx\r\ndocker run -p 8080:80 -d --name=my-nginx julenpardo\/my-nginx<\/pre>\n<p>We can check that the new container created for our own image, is the same as the previous container, at the moment of the commit, with the same files and packages installed.<\/p>\n<h2>6. Using Dockerfiles hosted in GitHub<\/h2>\n<p>The recommended way to manage our images is using Dockerfiles, instead of making changes and committing them. For doing the same as before, we can create the following Dockerfile:<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Dockerfile<\/em><\/span><\/p>\n<pre class=\"brush:php\">FROM nginx\r\n\r\nMAINTAINER Julen Pardo &lt;julen.pardo@outlook.es&gt;\r\n\r\nENV DEBIAN_FRONTEND=noninteractive\r\n\r\nRUN apt-get update\r\nRUN apt-get install -y php5-fpm\r\n\r\nRUN \/etc\/init.d\/php5-fpm start\r\n\r\nCOPY files\/default.conf \/etc\/nginx\/conf.d\/default.conf\r\nCOPY files\/phpinfo.php \/usr\/share\/nginx\/html\/phpinfo.php<\/pre>\n<p><strong>Note<\/strong>: we need a <code>files<\/code> directory with the files used in the Dockerfile.<\/p>\n<p>First of all, we have to link our Docker Hub account to the GitHub one, in &#8220;Settings\/Linked Account &amp; Services&#8221;. Docker has also to be authorized in GitHub, in &#8220;Integrations&#8221;.<\/p>\n<p>After creating a GitHub repository and pushing the repo there, we have to go to &#8220;Settings\/Integrations &amp; services&#8221;, and add a Docker service.<\/p>\n<p>Then, in Docker Hub, we have to create an automated build, from &#8220;Create\/Create Automated Build&#8221;. A list of your repositories should appear; create one for hosting the Dockerfile and the other files.<\/p>\n<p>Now, every time we make changes within the Dockerfile and push it to the remote GitHub repository, the image will be automatically built in Docker Hub. For example, if we would edit the Dockerfile to install, for example, UWSGI:<\/p>\n<pre class=\"brush:php\">RUN apt-get install -y uwsgi<\/pre>\n<p>Commit the changes and push it to the GitHub repo, a build will start (you can check it in &#8220;Build Details&#8221; section in Docker Hub.<\/p>\n<p>If we pull that image from the Docker Hub and create a container from it, we can check that UWSGI is installed on it!<\/p>\n<h2>7. Summary<\/h2>\n<p>This tutorial has shown how to use an Nginx Docker image combined with Docker Hub (actually applicable to any image), the cloud service for hosting Docker images, seeing both methods of making the changes directly within an existing container, and committing those changes; and using a Dockerfile managed under Git, and automating the builds in the Docker Hub.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial we will see how to take advantage of Docker Hub to deal with Docker images, with an Nginx image, one of the most used web servers in the last times. For this tutorial, Linux Mint 18 and Docker version 1.12.1 have been used. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [ulp id=&#8217;OCKUMTbC259tpbxG&#8217;] &hellip;<\/p>\n","protected":false},"author":160,"featured_media":10356,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-15816","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Docker Hub Nginx Tutorial - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"In this tutorial we will see how to take advantage of Docker Hub to deal with Docker images, with an Nginx image, one of the most used web servers in the\" \/>\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.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker Hub Nginx Tutorial - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"In this tutorial we will see how to take advantage of Docker Hub to deal with Docker images, with an Nginx image, one of the most used web servers in the\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webcodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-24T14:15:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-12-19T10:16:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Toni\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Toni\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/\"},\"author\":{\"name\":\"Toni\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/54a7be647b0b871cff41cbf3d2a95966\"},\"headline\":\"Docker Hub Nginx Tutorial\",\"datePublished\":\"2017-01-24T14:15:51+00:00\",\"dateModified\":\"2017-12-19T10:16:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/\"},\"wordCount\":844,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg\",\"articleSection\":[\"DevOps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/\",\"name\":\"Docker Hub Nginx Tutorial - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg\",\"datePublished\":\"2017-01-24T14:15:51+00:00\",\"dateModified\":\"2017-12-19T10:16:52+00:00\",\"description\":\"In this tutorial we will see how to take advantage of Docker Hub to deal with Docker images, with an Nginx image, one of the most used web servers in the\",\"breadcrumb\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/#primaryimage\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.webcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/devops\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Docker Hub Nginx Tutorial\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"name\":\"Web Code Geeks\",\"description\":\"Web Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.webcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webcodegeeks\",\"https:\/\/x.com\/webcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/54a7be647b0b871cff41cbf3d2a95966\",\"name\":\"Toni\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/21c1661474c78b4757355b8beef9ab1d14f490ee3a3e67392f4e618d36643d4c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/21c1661474c78b4757355b8beef9ab1d14f490ee3a3e67392f4e618d36643d4c?s=96&d=mm&r=g\",\"caption\":\"Toni\"},\"url\":\"https:\/\/www.webcodegeeks.com\/author\/julen-pardo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Docker Hub Nginx Tutorial - Web Code Geeks - 2026","description":"In this tutorial we will see how to take advantage of Docker Hub to deal with Docker images, with an Nginx image, one of the most used web servers in the","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.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/","og_locale":"en_US","og_type":"article","og_title":"Docker Hub Nginx Tutorial - Web Code Geeks - 2026","og_description":"In this tutorial we will see how to take advantage of Docker Hub to deal with Docker images, with an Nginx image, one of the most used web servers in the","og_url":"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_published_time":"2017-01-24T14:15:51+00:00","article_modified_time":"2017-12-19T10:16:52+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg","type":"image\/jpeg"}],"author":"Toni","twitter_card":"summary_large_image","twitter_creator":"@webcodegeeks","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Toni","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/"},"author":{"name":"Toni","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/54a7be647b0b871cff41cbf3d2a95966"},"headline":"Docker Hub Nginx Tutorial","datePublished":"2017-01-24T14:15:51+00:00","dateModified":"2017-12-19T10:16:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/"},"wordCount":844,"commentCount":0,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg","articleSection":["DevOps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/","url":"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/","name":"Docker Hub Nginx Tutorial - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/#primaryimage"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg","datePublished":"2017-01-24T14:15:51+00:00","dateModified":"2017-12-19T10:16:52+00:00","description":"In this tutorial we will see how to take advantage of Docker Hub to deal with Docker images, with an Nginx image, one of the most used web servers in the","breadcrumb":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/#primaryimage","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.webcodegeeks.com\/devops\/docker-hub-nginx-tutorial\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.webcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"DevOps","item":"https:\/\/www.webcodegeeks.com\/category\/devops\/"},{"@type":"ListItem","position":3,"name":"Docker Hub Nginx Tutorial"}]},{"@type":"WebSite","@id":"https:\/\/www.webcodegeeks.com\/#website","url":"https:\/\/www.webcodegeeks.com\/","name":"Web Code Geeks","description":"Web Developers Resource Center","publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.webcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.webcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webcodegeeks","https:\/\/x.com\/webcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/54a7be647b0b871cff41cbf3d2a95966","name":"Toni","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/21c1661474c78b4757355b8beef9ab1d14f490ee3a3e67392f4e618d36643d4c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/21c1661474c78b4757355b8beef9ab1d14f490ee3a3e67392f4e618d36643d4c?s=96&d=mm&r=g","caption":"Toni"},"url":"https:\/\/www.webcodegeeks.com\/author\/julen-pardo\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/15816","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/users\/160"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=15816"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/15816\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media\/10356"}],"wp:attachment":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media?parent=15816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=15816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=15816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}