{"id":12904,"date":"2016-05-31T12:15:21","date_gmt":"2016-05-31T09:15:21","guid":{"rendered":"https:\/\/www.webcodegeeks.com\/?p=12904"},"modified":"2016-05-26T18:14:13","modified_gmt":"2016-05-26T15:14:13","slug":"introduction-docker-trusted-registry","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/","title":{"rendered":"An Introduction to the Docker Trusted Registry"},"content":{"rendered":"<p>Many of us start our Docker journey pulling images from the <a href=\"https:\/\/hub.docker.com\/\">Docker Hub<\/a> with the time-honored <code>docker pull<\/code> command.<\/p>\n<p>Lots of these images are \u201cofficial\u201d and have passed through <a href=\"https:\/\/docs.docker.com\/docker-hub\/official_repos\/\">Docker\u2019s series of best practice and security checks<\/a>. But the Docker Hub is also full of unofficial images that are unreliable in reliability and security.<\/p>\n<p>Enterprises often require more control over their assets and workflow, preferring a repository they control and supervise. For Docker images, enter the <a href=\"https:\/\/www.docker.com\/products\/docker-trusted-registry\">Docker Trusted Registry<\/a> (DTR). Designed for Enterprise, the Registry is a part of Docker\u2019s paid tier, but you can sign up for a trial first<\/p>\n<p>The first step is to upgrade your account, and thankfully no payment is required during the trial.<\/p>\n<p>Next you need to setup your hardware. DTR is available for:<\/p>\n<ul>\n<li>CentOS 7.1\/7.2<\/li>\n<li>RHEL 7.0\/7.1<\/li>\n<li>Ubuntu 14.04<\/li>\n<li>SUSE Linux Enterprise 12<\/li>\n<\/ul>\n<p><em>For this example, I will use Ubuntu 14.04<\/em>.<\/p>\n<p>Add the keys, sources, and packages needed to install the commercially supported Docker Engine (CS Engine), a prerequisite for installing DTR.<\/p>\n<pre class=\"brush:php\">wget -qO- 'https:\/\/pgp.mit.edu\/pks\/lookup?op=get&amp;search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e' | sudo apt-key add --import\r\nsudo apt-get update &amp;&amp; sudo apt-get install apt-transport-https\r\nsudo apt-get install -y linux-image-extra-virtual\r\necho \"deb https:\/\/packages.docker.com\/1.10\/apt\/repo ubuntu-trusty main\" | sudo tee \/etc\/apt\/sources.list.d\/docker.list\r\nsudo apt-get update &amp;&amp; sudo apt-get install docker-engine<\/pre>\n<p>Next install the registry:<\/p>\n<pre class=\"brush:php\">sudo bash -c \"$(sudo docker run docker\/trusted-registry install)\"<\/pre>\n<p>Visit the IP address of your server. You may get an \u201cunsafe site\u201d warning. This is expected and you can feel safe to continue as normal.<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_ov.png\"><img decoding=\"async\" class=\"aligncenter wp-image-12910\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_ov.png\" alt=\"trusted_reg_ov\" width=\"860\" height=\"599\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_ov.png 1426w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_ov-300x209.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_ov-768x535.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_ov-1024x714.png 1024w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/hub.docker.com\/account\/licenses\/\">Download your license file<\/a> and add it to the settings section.<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/upload_license.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-12911\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/upload_license.png\" alt=\"upload_license\" width=\"724\" height=\"646\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/upload_license.png 724w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/upload_license-300x268.png 300w\" sizes=\"(max-width: 724px) 100vw, 724px\" \/><\/a><\/p>\n<p>DTR will warn you of any other settings that need your attention with red dialogue boxes. The first step is to <a href=\"https:\/\/docs.docker.com\/docker-trusted-registry\/configure\/config-auth\/\">create some user accounts or use an LDAP server for authentication<\/a> in the <em>Settings -&gt; Auth<\/em> section of the dashboard. Of course there are far more configuration options \u2014 <a href=\"https:\/\/docs.docker.com\/docker-trusted-registry\/configure\/configuration\/\">read further details here<\/a>.<\/p>\n<p>!New Call-to-action<\/p>\n<h2>Submitting an Image<\/h2>\n<p>With DTR installed, it\u2019s time to host a custom image on it. I will create a simple example to illustrate the process: a custom Ubuntu image for a development business.<\/p>\n<p>Pull the <code>ubuntu<\/code> image to your DTR host.<\/p>\n<pre class=\"brush:php\">docker pull ubuntu<\/pre>\n<p>Create a working directory and, inside it, a <em>Dockerfile<\/em>:<\/p>\n<pre class=\"brush:php\">mkdir build &amp;&amp; cd build &amp;&amp; touch Dockerfile<\/pre>\n<p>Next create a placeholder <em>docs<\/em> folder and <em>Readme.md<\/em> file. Don\u2019t add anything to them; they are purely for example.<\/p>\n<p>In your favorite editor, add the following to the <em>Dockerfile<\/em>:<\/p>\n<pre class=\"brush:php\">FROM ubuntu:14.04\r\n\r\nCOPY docs \/docs\r\nRUN apt-get update\r\nRUN apt-get install -y php5   php5-mcrypt<\/pre>\n<p>For this fictional example, you are creating an Ubuntu image for a company that specializes in PHP development; in other words, you\u2019re setting up the image with all the tools needed for developers to get straight to work.<\/p>\n<blockquote><p>Some of the official DTR documentation is a bit vague on what the steps to push a repository are and in which order they should happen. You may also receive a variety of authentication errors. The following steps are what worked for me, but depending on your setup, you may find the steps different.<\/p><\/blockquote>\n<p>In the admin interface, create a user (<em>Settings -&gt; Authentication<\/em>) or Organization (<em>Dashboard -&gt; Organizations<\/em>). For this example, \u201cquick-start\u201d and create a repository to match the image name \u2014 in this example, \u201cubuntu-img.\u201d<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_org_users.png\"><img decoding=\"async\" class=\"aligncenter wp-image-12912\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_org_users.png\" alt=\"trusted_reg_org_users\" width=\"860\" height=\"410\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_org_users.png 2173w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_org_users-300x143.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_org_users-768x366.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_org_users-1024x488.png 1024w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/a><\/p>\n<p>Returning to the <em>build<\/em> directory, run the Docker <code>build<\/code> command to build your custom image:<\/p>\n<pre class=\"brush:php\">docker build -t SERVER_IP\/quick-start\/ubuntu-img .<\/pre>\n<p><code>quick-start<\/code> is the name of the User\/Organization you want to add the image to. <code>ubuntu-img<\/code> is the image\/repository (these two words are interchangeable on DTR) name.<\/p>\n<p>Run the <code>docker images<\/code> command to list the Docker images available, and you will now see your custom image listed. Push the newly built image from your local Docker daemon to the trusted repository with the <code>docker push<\/code> command.<\/p>\n<pre class=\"brush:php\">docker push SERVER_IP\/quick-start\/ubuntu-img<\/pre>\n<p>Now your image shows listed in the DTR GUI with any details and documentation added:<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_repo.png\"><img decoding=\"async\" class=\"aligncenter wp-image-12913\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_repo.png\" alt=\"trusted_reg_repo\" width=\"860\" height=\"365\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_repo.png 2121w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_repo-300x127.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_repo-768x326.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_repo-1024x435.png 1024w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_repo_details.png\"><img decoding=\"async\" class=\"aligncenter wp-image-12915\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_repo_details.png\" alt=\"trusted_reg_repo_details\" width=\"860\" height=\"321\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_repo_details.png 2114w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_repo_details-300x112.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_repo_details-768x287.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_repo_details-1024x383.png 1024w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/a><\/p>\n<p>From here on, you are in familiar Docker territory. However, instead of using the Docker hub, you use your own trusted repository. So to pull an image to a Docker daemon with access to your DTR:<\/p>\n<pre class=\"brush:php\">sudo docker pull SERVER_IP\/quick-start\/ubuntu-img<\/pre>\n<p>And to create an instance of a container:<\/p>\n<pre class=\"brush:php\">docker run --name myubuntu SERVER_IP\/quick-start\/ubuntu-img<\/pre>\n<p>There is an overview of your registry resources consumption or problems from the DTR overview and logs sections:<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_ov-1.png\"><img decoding=\"async\" class=\"aligncenter wp-image-12916\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_ov-1.png\" alt=\"trusted_reg_ov (1)\" width=\"860\" height=\"599\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_ov-1.png 1426w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_ov-1-300x209.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_ov-1-768x535.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_ov-1-1024x714.png 1024w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_logs.png\"><img decoding=\"async\" class=\"aligncenter wp-image-12917\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_logs.png\" alt=\"trusted_reg_logs\" width=\"860\" height=\"492\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_logs.png 2853w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_logs-300x172.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_logs-768x439.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/05\/trusted_reg_logs-1024x586.png 1024w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/a><\/p>\n<h2>Conclusion<\/h2>\n<p>The Docker Trusted Registry is a simple tool for anyone looking for more control and security over their Docker images. The initial setup and configuration is a little confusing (and different documents list different steps), but once you\u2019re ready to go, building, pushing, and pulling images is a simple process.<\/p>\n<p>If you want to skip these confusing setup steps, several cloud providers offer DTR as a hosted service, including <a href=\"https:\/\/aws.amazon.com\/blogs\/aws\/docker-trusted-registry-now-in-the-aws-marketplace\/\">AWS<\/a> and <a href=\"https:\/\/azure.microsoft.com\/en-us\/marketplace\/partners\/docker\/docker-subscription-for-azure\/\">Azure<\/a>.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td><span class=\"reference\">Reference: <\/span><\/td>\n<td><a href=\"https:\/\/blog.codeship.com\/docker-trusted-registry\/\">An Introduction to the Docker Trusted Registry<\/a> from our <a href=\"http:\/\/www.webcodegeeks.com\/join-us\/wcg\/\">WCG partner<\/a>\u00a0Chris Ward at the <a href=\"http:\/\/blog.codeship.com\/\">Codeship Blog<\/a> blog.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Many of us start our Docker journey pulling images from the Docker Hub with the time-honored docker pull command. Lots of these images are \u201cofficial\u201d and have passed through Docker\u2019s series of best practice and security checks. But the Docker Hub is also full of unofficial images that are unreliable in reliability and security. Enterprises &hellip;<\/p>\n","protected":false},"author":148,"featured_media":10356,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[217],"class_list":["post-12904","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-docker"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>An Introduction to the Docker Trusted Registry - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"Many of us start our Docker journey pulling images from the Docker Hub with the time-honored docker pull command. Lots of these images are \u201cofficial\u201d and\" \/>\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\/introduction-docker-trusted-registry\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"An Introduction to the Docker Trusted Registry - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"Many of us start our Docker journey pulling images from the Docker Hub with the time-honored docker pull command. Lots of these images are \u201cofficial\u201d and\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/\" \/>\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=\"2016-05-31T09:15:21+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=\"Chris Ward\" \/>\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=\"Chris Ward\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/\"},\"author\":{\"name\":\"Chris Ward\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/ec768d779e3ecb955c5f552f0f734757\"},\"headline\":\"An Introduction to the Docker Trusted Registry\",\"datePublished\":\"2016-05-31T09:15:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/\"},\"wordCount\":720,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg\",\"keywords\":[\"Docker\"],\"articleSection\":[\"DevOps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/\",\"name\":\"An Introduction to the Docker Trusted Registry - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg\",\"datePublished\":\"2016-05-31T09:15:21+00:00\",\"description\":\"Many of us start our Docker journey pulling images from the Docker Hub with the time-honored docker pull command. Lots of these images are \u201cofficial\u201d and\",\"breadcrumb\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/#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\/introduction-docker-trusted-registry\/#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\":\"An Introduction to the Docker Trusted Registry\"}]},{\"@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\/ec768d779e3ecb955c5f552f0f734757\",\"name\":\"Chris Ward\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e715e4a95de958fcd3da75cde89b6459b80f977d665284e37751ecdcb2b1e4c4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e715e4a95de958fcd3da75cde89b6459b80f977d665284e37751ecdcb2b1e4c4?s=96&d=mm&r=g\",\"caption\":\"Chris Ward\"},\"description\":\"Chris Ward is a technical writer, speaker, and developer.\",\"url\":\"https:\/\/www.webcodegeeks.com\/author\/chris-ward\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"An Introduction to the Docker Trusted Registry - Web Code Geeks - 2026","description":"Many of us start our Docker journey pulling images from the Docker Hub with the time-honored docker pull command. Lots of these images are \u201cofficial\u201d and","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\/introduction-docker-trusted-registry\/","og_locale":"en_US","og_type":"article","og_title":"An Introduction to the Docker Trusted Registry - Web Code Geeks - 2026","og_description":"Many of us start our Docker journey pulling images from the Docker Hub with the time-honored docker pull command. Lots of these images are \u201cofficial\u201d and","og_url":"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_published_time":"2016-05-31T09:15:21+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":"Chris Ward","twitter_card":"summary_large_image","twitter_creator":"@webcodegeeks","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Chris Ward","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/"},"author":{"name":"Chris Ward","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/ec768d779e3ecb955c5f552f0f734757"},"headline":"An Introduction to the Docker Trusted Registry","datePublished":"2016-05-31T09:15:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/"},"wordCount":720,"commentCount":0,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg","keywords":["Docker"],"articleSection":["DevOps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/","url":"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/","name":"An Introduction to the Docker Trusted Registry - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/#primaryimage"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg","datePublished":"2016-05-31T09:15:21+00:00","description":"Many of us start our Docker journey pulling images from the Docker Hub with the time-honored docker pull command. Lots of these images are \u201cofficial\u201d and","breadcrumb":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/devops\/introduction-docker-trusted-registry\/#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\/introduction-docker-trusted-registry\/#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":"An Introduction to the Docker Trusted Registry"}]},{"@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\/ec768d779e3ecb955c5f552f0f734757","name":"Chris Ward","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e715e4a95de958fcd3da75cde89b6459b80f977d665284e37751ecdcb2b1e4c4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e715e4a95de958fcd3da75cde89b6459b80f977d665284e37751ecdcb2b1e4c4?s=96&d=mm&r=g","caption":"Chris Ward"},"description":"Chris Ward is a technical writer, speaker, and developer.","url":"https:\/\/www.webcodegeeks.com\/author\/chris-ward\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/12904","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\/148"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=12904"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/12904\/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=12904"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=12904"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=12904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}