<!doctype html> <html> <head> <meta charset="utf-8"> <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>API Documentation</title> <link href="../stylesheets/screen.css" rel="stylesheet" type="text/css" media="screen" /> <link href="../stylesheets/print.css" rel="stylesheet" type="text/css" media="print" /> <script type="text/javascript"> !function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on"];analytics.factory=function(t){return function(){var e=Array.prototype.slice.call(arguments);e.unshift(t);analytics.push(e);return analytics}};for(var t=0;t<analytics.methods.length;t++){var e=analytics.methods[t];analytics[e]=analytics.factory(e)}analytics.load=function(t){var e=document.createElement("script");e.type="text/javascript";e.async=!0;e.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.segment.com/analytics.js/v1/"+t+"/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(e,n)};analytics.SNIPPET_VERSION="4.0.0"; analytics.load("IWj9D0UpZHZdZUZX9jl98PcpBFWBnBMy"); analytics.page(); }}(); </script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script src="../javascripts/all_nosearch.js" type="text/javascript"></script> </head> <body class="includes includes_repository"> <a href="#" id="nav-button"> <span> NAV <img src="../images/navbar.png" /> </span> </a> <div class="tocify-wrapper"> <img src="../images/logo.png" /> <div id="toc"> </div> </div> <div class="page-wrapper"> <div class="dark-box"></div> <div class="content"> <h1 id="external-repositories">External Repositories</h1> <h2 id="external-repository">External Repository</h2> <blockquote> <p>Example</p> </blockquote> <pre class="highlight json"><code><span class="p">{</span><span class="w"> </span><span class="nt">"in_use"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"my.registry.com/myrepo"</span><span class="p">,</span><span class="w"> </span><span class="nt">"registry"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/api/repo/v1/user_namespace/registry/my.registry.com/"</span><span class="p">,</span><span class="w"> </span><span class="nt">"resource_uri"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/api/repo/v1/user_namespace/repository/my.registry.com/myrepo/"</span><span class="p">,</span><span class="w"> </span><span class="err">}</span><span class="w"> </span></code></pre> <p>The <code class="prettyprint">repository</code> endpoint is used to add and remove existing repositories on third party registries to be used in deployments and builds.</p> <p>This is a <a href="#namespaced-endpoints">namespaced endpoint</a>.</p> <h3 id="attributes">Attributes</h3> <table><thead> <tr> <th>Attribute</th> <th>Description</th> </tr> </thead><tbody> <tr> <td>resource_uri</td> <td>A unique API endpoint that represents the repository</td> </tr> <tr> <td>name</td> <td>Name of the repository, i.e. <code class="prettyprint">my.registry.com/myrepo</code></td> </tr> <tr> <td>in_use</td> <td>If the image is being used by any of your services</td> </tr> <tr> <td>registry</td> <td>Resource URI of the registry where this image is hosted</td> </tr> </tbody></table> <h2 id="list-all-external-repositories">List all external repositories</h2> <pre class="highlight python"><code><span class="kn">import</span> <span class="nn">dockercloud</span> <span class="n">repositories</span> <span class="o">=</span> <span class="n">dockercloud</span><span class="o">.</span><span class="n">Repository</span><span class="o">.</span><span class="nb">list</span><span class="p">()</span> </code></pre> <pre class="highlight http"><code><span class="nf">GET</span> <span class="nn">/api/repo/v1/repository/</span> <span class="k">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="na">Host</span><span class="p">:</span> <span class="s">cloud.docker.com</span> <span class="na">Authorization</span><span class="p">:</span> <span class="s">Basic dXNlcm5hbWU6YXBpa2V5</span> <span class="na">Accept</span><span class="p">:</span> <span class="s">application/json</span> </code></pre> <pre class="highlight go"><code><span class="k">import</span><span class="x"> </span><span class="s">"github.com/docker/go-dockercloud/dockercloud"</span><span class="x"> </span><span class="n">repositoriesList</span><span class="p">,</span><span class="x"> </span><span class="n">err</span><span class="x"> </span><span class="o">:=</span><span class="x"> </span><span class="n">dockercloud</span><span class="o">.</span><span class="n">ListRepositories</span><span class="p">()</span><span class="x"> </span><span class="k">if</span><span class="x"> </span><span class="n">err</span><span class="x"> </span><span class="o">!=</span><span class="x"> </span><span class="no">nil</span><span class="x"> </span><span class="p">{</span><span class="x"> </span><span class="n">log</span><span class="o">.</span><span class="n">Println</span><span class="p">(</span><span class="n">err</span><span class="p">)</span><span class="x"> </span><span class="p">}</span><span class="x"> </span><span class="n">log</span><span class="o">.</span><span class="n">Pringln</span><span class="p">(</span><span class="n">repositoriesList</span><span class="p">)</span><span class="x"> </span></code></pre> <pre class="highlight shell"><code>docker-cloud repository ls </code></pre> <p>Lists all added repositories from third party registries. Returns a list of <code class="prettyprint">Repository</code> objects.</p> <h3 id="endpoint-type">Endpoint Type</h3> <p>Available in Docker Cloud’s <strong>REST API</strong></p> <h3 id="http-request">HTTP Request</h3> <p><code class="prettyprint">GET /api/repo/v1/[optional_namespace/]repository/</code></p> <h3 id="query-parameters">Query Parameters</h3> <table><thead> <tr> <th>Parameter</th> <th>Description</th> </tr> </thead><tbody> <tr> <td>name</td> <td>Filter by image name</td> </tr> <tr> <td>registry</td> <td>Filter by resource URI of the target repository registry</td> </tr> </tbody></table> <h2 id="add-a-new-external-repository">Add a new external repository</h2> <pre class="highlight python"><code><span class="kn">import</span> <span class="nn">dockercloud</span> <span class="n">repository</span> <span class="o">=</span> <span class="n">dockercloud</span><span class="o">.</span><span class="n">Repository</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">"registry.local/user1/image1"</span><span class="p">,</span> <span class="n">username</span><span class="o">=</span><span class="n">username</span><span class="p">,</span> <span class="n">password</span><span class="o">=</span><span class="n">password</span><span class="p">)</span> <span class="n">repository</span><span class="o">.</span><span class="n">save</span><span class="p">()</span> </code></pre> <pre class="highlight http"><code><span class="nf">POST</span> <span class="nn">/api/repo/v1/repository/</span> <span class="k">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="na">Host</span><span class="p">:</span> <span class="s">cloud.docker.com</span> <span class="na">Authorization</span><span class="p">:</span> <span class="s">Basic dXNlcm5hbWU6YXBpa2V5</span> <span class="na">Accept</span><span class="p">:</span> <span class="s">application/json</span> <span class="na">Content-Type</span><span class="p">:</span> <span class="s">application/json</span> <span class="p">{</span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"registry.local/user1/image1"</span><span class="p">,</span><span class="w"> </span><span class="nt">"username"</span><span class="p">:</span><span class="w"> </span><span class="s2">"username"</span><span class="p">,</span><span class="w"> </span><span class="nt">"password"</span><span class="p">:</span><span class="w"> </span><span class="s2">"password"</span><span class="p">}</span><span class="w"> </span></code></pre> <pre class="highlight go"><code><span class="k">import</span><span class="x"> </span><span class="s">"github.com/docker/go-dockercloud/dockercloud"</span><span class="x"> </span><span class="n">image</span><span class="p">,</span><span class="x"> </span><span class="n">err</span><span class="x"> </span><span class="o">:=</span><span class="x"> </span><span class="n">dockercloud</span><span class="o">.</span><span class="n">CreateImage</span><span class="p">(</span><span class="n">dockercloud</span><span class="o">.</span><span class="n">ImageCreateRequest</span><span class="p">{</span><span class="x"> </span><span class="n">Name</span><span class="o">:</span><span class="x"> </span><span class="s">"registry.local/user1/image1"</span><span class="p">,</span><span class="x"> </span><span class="n">Username</span><span class="o">:</span><span class="x"> </span><span class="s">"username"</span><span class="p">,</span><span class="x"> </span><span class="n">Password</span><span class="o">:</span><span class="x"> </span><span class="s">"password"</span><span class="x"> </span><span class="p">})</span><span class="x"> </span></code></pre> <pre class="highlight shell"><code>docker-cloud repository register -u username -p password registry.local/user1/image1 </code></pre> <p>Adds an existing repository on a third party registry.</p> <h3 id="endpoint-type">Endpoint Type</h3> <p>Available in Docker Cloud’s <strong>REST API</strong></p> <h3 id="http-request">HTTP Request</h3> <p><code class="prettyprint">POST /api/repo/v1/[optional_namespace/]repository/</code></p> <h3 id="json-parameters">JSON Parameters</h3> <table><thead> <tr> <th>Parameter</th> <th>Description</th> </tr> </thead><tbody> <tr> <td>name</td> <td>Name of the repository, i.e. ‘my.registry.com/myrepo’</td> </tr> <tr> <td>username</td> <td>Username to authenticate with the third party registry</td> </tr> <tr> <td>password</td> <td>Password to authenticate with the third party registry</td> </tr> </tbody></table> <h2 id="get-an-external-repository-details">Get an external repository details</h2> <pre class="highlight python"><code><span class="kn">import</span> <span class="nn">dockercloud</span> <span class="n">repository</span> <span class="o">=</span> <span class="n">dockercloud</span><span class="o">.</span><span class="n">Repository</span><span class="o">.</span><span class="n">fetch</span><span class="p">(</span><span class="s">"registry.local/user1/image1"</span><span class="p">)</span> </code></pre> <pre class="highlight http"><code><span class="nf">GET</span> <span class="nn">/api/repo/v1/repository/registry.local/user1/image1/</span> <span class="k">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="na">Host</span><span class="p">:</span> <span class="s">cloud.docker.com</span> <span class="na">Authorization</span><span class="p">:</span> <span class="s">Basic dXNlcm5hbWU6YXBpa2V5</span> <span class="na">Accept</span><span class="p">:</span> <span class="s">application/json</span> </code></pre> <pre class="highlight go"><code><span class="k">import</span><span class="x"> </span><span class="s">"github.com/docker/go-dockercloud/dockercloud"</span><span class="x"> </span><span class="n">repository</span><span class="p">,</span><span class="x"> </span><span class="n">err</span><span class="x"> </span><span class="o">=</span><span class="x"> </span><span class="n">dockercloud</span><span class="o">.</span><span class="n">GetRepository</span><span class="p">(</span><span class="s">"registry.local/user1/image1"</span><span class="p">)</span><span class="x"> </span><span class="k">if</span><span class="x"> </span><span class="n">err</span><span class="x"> </span><span class="o">!=</span><span class="x"> </span><span class="no">nil</span><span class="x"> </span><span class="p">{</span><span class="x"> </span><span class="n">log</span><span class="o">.</span><span class="n">Println</span><span class="p">(</span><span class="n">err</span><span class="p">)</span><span class="x"> </span><span class="p">}</span><span class="x"> </span><span class="n">log</span><span class="o">.</span><span class="n">Println</span><span class="p">(</span><span class="n">repository</span><span class="p">)</span><span class="x"> </span></code></pre> <pre class="highlight shell"><code>docker-cloud repository inspect registry.local/user1/image1 </code></pre> <p>Gets all the details of an specific repository</p> <h3 id="endpoint-type">Endpoint Type</h3> <p>Available in Docker Cloud’s <strong>REST API</strong></p> <h3 id="http-request">HTTP Request</h3> <p><code class="prettyprint">GET /api/repo/v1/[optional_namespace/]repository/(name)/</code></p> <h3 id="path-parameters">Path Parameters</h3> <table><thead> <tr> <th>Parameter</th> <th>Description</th> </tr> </thead><tbody> <tr> <td>name</td> <td>The name of the repository to retrieve</td> </tr> </tbody></table> <h2 id="update-credentials-of-an-external-repository">Update credentials of an external repository</h2> <pre class="highlight python"><code><span class="kn">import</span> <span class="nn">dockercloud</span> <span class="n">repository</span> <span class="o">=</span> <span class="n">dockercloud</span><span class="o">.</span><span class="n">Repository</span><span class="o">.</span><span class="n">fetch</span><span class="p">(</span><span class="s">"registry.local/user1/image1"</span><span class="p">)</span> <span class="n">repository</span><span class="o">.</span><span class="n">username</span> <span class="o">=</span> <span class="s">"new username"</span> <span class="n">repository</span><span class="o">.</span><span class="n">password</span> <span class="o">=</span> <span class="s">"new password"</span> <span class="n">repository</span><span class="o">.</span><span class="n">save</span><span class="p">()</span> </code></pre> <pre class="highlight http"><code><span class="nf">PATCH</span> <span class="nn">/api/repo/v1/repository/registry.local/user1/image1/</span> <span class="k">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="na">Host</span><span class="p">:</span> <span class="s">cloud.docker.com</span> <span class="na">Authorization</span><span class="p">:</span> <span class="s">Basic dXNlcm5hbWU6YXBpa2V5</span> <span class="na">Accept</span><span class="p">:</span> <span class="s">application/json</span> <span class="na">Content-Type</span><span class="p">:</span> <span class="s">application/json</span> <span class="p">{</span><span class="nt">"username"</span><span class="p">:</span><span class="w"> </span><span class="s2">"username"</span><span class="p">,</span><span class="w"> </span><span class="nt">"password"</span><span class="p">:</span><span class="w"> </span><span class="s2">"password"</span><span class="p">}</span><span class="w"> </span></code></pre> <pre class="highlight shell"><code>docker-cloud repository update -n <span class="s2">"new username"</span> -p <span class="s2">"new password"</span> registry.local/user1/image1 </code></pre> <p>Updates the external repository credentials.</p> <h3 id="endpoint-type">Endpoint Type</h3> <p>Available in Docker Cloud’s <strong>REST API</strong></p> <h3 id="http-request">HTTP Request</h3> <p><code class="prettyprint">PATCH /api/repo/v1/[optional_namespace/]repository/(name)/</code></p> <h3 id="path-parameters">Path Parameters</h3> <table><thead> <tr> <th>Parameter</th> <th>Description</th> </tr> </thead><tbody> <tr> <td>name</td> <td>The name of the repository to update</td> </tr> </tbody></table> <h3 id="json-parameters">JSON Parameters</h3> <table><thead> <tr> <th>Parameter</th> <th>Description</th> </tr> </thead><tbody> <tr> <td>username</td> <td>Username to authenticate with the private registry</td> </tr> <tr> <td>password</td> <td>Password to authenticate with the private registry</td> </tr> </tbody></table> <h2 id="remove-an-external-repository">Remove an external repository</h2> <pre class="highlight python"><code><span class="kn">import</span> <span class="nn">dockercloud</span> <span class="n">repository</span> <span class="o">=</span> <span class="n">dockercloud</span><span class="o">.</span><span class="n">Repository</span><span class="o">.</span><span class="n">fetch</span><span class="p">(</span><span class="s">"registry.local/user1/image1"</span><span class="p">)</span> <span class="n">repository</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span> </code></pre> <pre class="highlight http"><code><span class="nf">DELETE</span> <span class="nn">/api/repo/v1/repository/registry.local/user1/image1/</span> <span class="k">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="na">Host</span><span class="p">:</span> <span class="s">cloud.docker.com</span> <span class="na">Authorization</span><span class="p">:</span> <span class="s">Basic dXNlcm5hbWU6YXBpa2V5</span> <span class="na">Accept</span><span class="p">:</span> <span class="s">application/json</span> </code></pre> <pre class="highlight go"><code><span class="k">import</span><span class="x"> </span><span class="s">"github.com/docker/go-dockercloud/dockercloud"</span><span class="x"> </span><span class="n">repository</span><span class="p">,</span><span class="x"> </span><span class="n">err</span><span class="x"> </span><span class="o">=</span><span class="x"> </span><span class="n">dockercloud</span><span class="o">.</span><span class="n">GetRepository</span><span class="p">(</span><span class="s">"registry.local/user1/image1"</span><span class="p">)</span><span class="x"> </span><span class="k">if</span><span class="x"> </span><span class="n">err</span><span class="x"> </span><span class="o">!=</span><span class="x"> </span><span class="no">nil</span><span class="x"> </span><span class="p">{</span><span class="x"> </span><span class="n">log</span><span class="o">.</span><span class="n">Println</span><span class="p">(</span><span class="n">err</span><span class="p">)</span><span class="x"> </span><span class="p">}</span><span class="x"> </span><span class="n">repository</span><span class="o">.</span><span class="n">Remove</span><span class="p">()</span><span class="x"> </span></code></pre> <pre class="highlight shell"><code>docker-cloud repository rm registry.local/user1/image1 </code></pre> <p>Removes the external repository from Docker Cloud. It won’t remove the repository from the third party registry where it’s stored.</p> <h3 id="endpoint-type">Endpoint Type</h3> <p>Available in Docker Cloud’s <strong>REST API</strong></p> <h3 id="http-request">HTTP Request</h3> <p><code class="prettyprint">DELETE /api/repo/v1/[optional_namespace/]repository/</code></p> <h3 id="path-parameters">Path Parameters</h3> <table><thead> <tr> <th>Parameter</th> <th>Description</th> </tr> </thead><tbody> <tr> <td>name</td> <td>The name of the external repository to remove</td> </tr> </tbody></table> </div> <div class="dark-box"> </div> </div> </body> </html>