This adds back in the references to private repositories and
provides some refactoring to the Working with repositories
documentation including updating references to the "Central"
registry to Docker.io.
It also:
* Fixes some links and references to Central Index
* Fixes anchors in other files to updated titles in Working with Repositories.
* Renamed Central Index in the remaining places.
* Updated terms documentation to reflect Docker.io
* Updated some Docker Index naming to be consistent.
* Updates menu labels and hyperlinks.
Docker-DCO-1.1-Signed-off-by: James Turnbull <james@lovedthanlost.net> (github: jamtur01)
Docker-DCO-1.1-Signed-off-by: O.S. Tezer <ostezer@gmail.com> (github: ostezer)
| ... | ... |
@@ -82,12 +82,12 @@ pages: |
| 82 | 82 |
# - ['user-guide/configuration.md', 'User Guide', 'Configuration'] |
| 83 | 83 |
# ./faq.md |
| 84 | 84 |
|
| 85 |
-# Docker Index docs: |
|
| 86 |
-- ['index/index.md', '**HIDDEN**'] |
|
| 85 |
+# Docker.io docs: |
|
| 86 |
+- ['docker-io/index.md', '**HIDDEN**'] |
|
| 87 | 87 |
# - ['index/home.md', 'Docker Index', 'Help'] |
| 88 |
-- ['index/accounts.md', 'Docker Index', 'Accounts'] |
|
| 89 |
-- ['index/repos.md', 'Docker Index', 'Repositories'] |
|
| 90 |
-- ['index/builds.md', 'Docker Index', 'Trusted Builds'] |
|
| 88 |
+- ['docker-io/accounts.md', 'Docker.io', 'Accounts'] |
|
| 89 |
+- ['docker-io/repos.md', 'Docker.io', 'Repositories'] |
|
| 90 |
+- ['docker-io/builds.md', 'Docker.io', 'Trusted Builds'] |
|
| 91 | 91 |
|
| 92 | 92 |
# Reference |
| 93 | 93 |
- ['reference/index.md', '**HIDDEN**'] |
| ... | ... |
@@ -99,7 +99,7 @@ pages: |
| 99 | 99 |
- ['articles/security.md', 'Reference', 'Security'] |
| 100 | 100 |
- ['articles/baseimages.md', 'Reference', 'Creating a Base Image'] |
| 101 | 101 |
- ['use/networking.md', 'Reference', 'Advanced networking'] |
| 102 |
-- ['reference/api/index_api.md', 'Reference', 'Docker Index API'] |
|
| 102 |
+- ['reference/api/docker-io_api.md', 'Reference', 'Docker.io API'] |
|
| 103 | 103 |
- ['reference/api/registry_api.md', 'Reference', 'Docker Registry API'] |
| 104 | 104 |
- ['reference/api/registry_index_spec.md', 'Reference', 'Registry & Index Spec'] |
| 105 | 105 |
- ['reference/api/docker_remote_api.md', 'Reference', 'Docker Remote API'] |
| ... | ... |
@@ -126,4 +126,3 @@ pages: |
| 126 | 126 |
- ['terms/repository.md', '**HIDDEN**', 'repository'] |
| 127 | 127 |
- ['terms/filesystem.md', '**HIDDEN**', 'filesystem'] |
| 128 | 128 |
- ['terms/image.md', '**HIDDEN**', 'image'] |
| 129 |
- |
| 130 | 129 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,32 @@ |
| 0 |
+page_title: Accounts on Docker.io |
|
| 1 |
+page_description: Docker.io accounts |
|
| 2 |
+page_keywords: Docker, docker, registry, accounts, plans, Dockerfile, Docker.io, docs, documentation |
|
| 3 |
+ |
|
| 4 |
+# Accounts on Docker.io |
|
| 5 |
+ |
|
| 6 |
+## Docker.io Accounts |
|
| 7 |
+ |
|
| 8 |
+You can `search` for Docker images and `pull` them from [Docker.io](https://index.docker.io) |
|
| 9 |
+without signing in or even having an account. However, in order to `push` images, |
|
| 10 |
+leave comments or to *star* a repository, you are going to need a [Docker.io]( |
|
| 11 |
+https://www.docker.io) account. |
|
| 12 |
+ |
|
| 13 |
+### Registration for a Docker.io Account |
|
| 14 |
+ |
|
| 15 |
+You can get a [Docker.io](https://index.docker.io) account by |
|
| 16 |
+[signing up for one here](https://www.docker.io/account/signup/). A valid |
|
| 17 |
+email address is required to register, which you will need to verify for |
|
| 18 |
+account activation. |
|
| 19 |
+ |
|
| 20 |
+### Email activation process |
|
| 21 |
+ |
|
| 22 |
+You need to have at least one verified email address to be able to use your |
|
| 23 |
+[Docker.io](https://index.docker.io) account. If you can't find the validation email, |
|
| 24 |
+you can request another by visiting the [Resend Email Confirmation]( |
|
| 25 |
+https://www.docker.io/account/resend-email-confirmation/) page. |
|
| 26 |
+ |
|
| 27 |
+### Password reset process |
|
| 28 |
+ |
|
| 29 |
+If you can't access your account for some reason, you can reset your password |
|
| 30 |
+from the [*Password Reset*](https://www.docker.io/account/forgot-password/) |
|
| 31 |
+page. |
|
| 0 | 32 |
\ No newline at end of file |
| 1 | 33 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,121 @@ |
| 0 |
+page_title: Trusted Builds on Docker.io |
|
| 1 |
+page_description: Docker.io Trusted Builds |
|
| 2 |
+page_keywords: Docker, docker, registry, accounts, plans, Dockerfile, Docker.io, docs, documentation, trusted, builds, trusted builds |
|
| 3 |
+ |
|
| 4 |
+# Trusted Builds on Docker.io |
|
| 5 |
+ |
|
| 6 |
+## Trusted Builds |
|
| 7 |
+ |
|
| 8 |
+*Trusted Builds* is a special feature allowing you to specify a source |
|
| 9 |
+repository with a *Dockerfile* to be built by the Docker build clusters. The |
|
| 10 |
+system will clone your repository and build the Dockerfile using the repository |
|
| 11 |
+as the context. The resulting image will then be uploaded to the registry and |
|
| 12 |
+marked as a `Trusted Build`. |
|
| 13 |
+ |
|
| 14 |
+Trusted Builds have a number of advantages. For example, users of *your* Trusted |
|
| 15 |
+Build can be certain that the resulting image was built exactly how it claims |
|
| 16 |
+to be. |
|
| 17 |
+ |
|
| 18 |
+Furthermore, the Dockerfile will be available to anyone browsing your repository |
|
| 19 |
+on the registry. Another advantage of the Trusted Builds feature is the automated |
|
| 20 |
+builds. This makes sure that your repository is always up to date. |
|
| 21 |
+ |
|
| 22 |
+### Linking with a GitHub account |
|
| 23 |
+ |
|
| 24 |
+In order to setup a Trusted Build, you need to first link your [Docker.io]( |
|
| 25 |
+https://index.docker.io) account with a GitHub one. This will allow the registry |
|
| 26 |
+to see your repositories. |
|
| 27 |
+ |
|
| 28 |
+> *Note:* We currently request access for *read* and *write* since [Docker.io]( |
|
| 29 |
+> https://index.docker.io) needs to setup a GitHub service hook. Although nothing |
|
| 30 |
+> else is done with your account, this is how GitHub manages permissions, sorry! |
|
| 31 |
+ |
|
| 32 |
+### Creating a Trusted Build |
|
| 33 |
+ |
|
| 34 |
+You can [create a Trusted Build](https://index.docker.io/builds/github/select/) |
|
| 35 |
+from any of your public GitHub repositories with a Dockerfile. |
|
| 36 |
+ |
|
| 37 |
+> **Note:** We currently only support public repositories. To have more than |
|
| 38 |
+> one Docker image from the same GitHub repository, you will need to set up one |
|
| 39 |
+> Trusted Build per Dockerfile, each using a different image name. This rule |
|
| 40 |
+> applies to building multiple branches on the same GitHub repository as well. |
|
| 41 |
+ |
|
| 42 |
+### GitHub organizations |
|
| 43 |
+ |
|
| 44 |
+GitHub organizations appear once your membership to that organization is |
|
| 45 |
+made public on GitHub. To verify, you can look at the members tab for your |
|
| 46 |
+organization on GitHub. |
|
| 47 |
+ |
|
| 48 |
+### GitHub service hooks |
|
| 49 |
+ |
|
| 50 |
+You can follow the below steps to configure the GitHub service hooks for your |
|
| 51 |
+Trusted Build: |
|
| 52 |
+ |
|
| 53 |
+<table class="table table-bordered"> |
|
| 54 |
+ <thead> |
|
| 55 |
+ <tr> |
|
| 56 |
+ <th>Step</th> |
|
| 57 |
+ <th>Screenshot</th> |
|
| 58 |
+ <th>Description</th> |
|
| 59 |
+ </tr> |
|
| 60 |
+ </thead> |
|
| 61 |
+ <tbody> |
|
| 62 |
+ <tr> |
|
| 63 |
+ <td>1.</td> |
|
| 64 |
+ <td><img src="https://d207aa93qlcgug.cloudfront.net/0.8/img/github_settings.png"></td> |
|
| 65 |
+ <td>Login to Github.com, and visit your Repository page. Click on the repository "Settings" link. You will need admin rights to the repository in order to do this. So if you don't have admin rights, you will need to ask someone who does.</td> |
|
| 66 |
+ </tr> |
|
| 67 |
+ <tr> |
|
| 68 |
+ <td>2.</td> |
|
| 69 |
+ <td><img src="https://d207aa93qlcgug.cloudfront.net/0.8/img/github_service_hooks.png" alt="Service Hooks"></td> |
|
| 70 |
+ <td>Click on the "Service Hooks" link</td></tr><tr><td>3.</td><td><img src="https://d207aa93qlcgug.cloudfront.net/0.8/img/github_docker_service_hook.png" alt="Find the service hook labeled Docker"></td><td>Find the service hook labeled "Docker" and click on it.</td></tr><tr><td>4.</td><td><img src="https://d207aa93qlcgug.cloudfront.net/0.8/img/github_service_hook_docker_activate.png" alt="Activate Service Hooks"></td> |
|
| 71 |
+ <td>Click on the "Active" checkbox and then the "Update settings" button, to save changes.</td> |
|
| 72 |
+ </tr> |
|
| 73 |
+ </tbody> |
|
| 74 |
+</table> |
|
| 75 |
+ |
|
| 76 |
+### The Dockerfile and Trusted Builds |
|
| 77 |
+ |
|
| 78 |
+During the build process, we copy the contents of your Dockerfile. We also |
|
| 79 |
+add it to the [Docker.io](https://index.docker.io) for the Docker community |
|
| 80 |
+to see on the repository page. |
|
| 81 |
+ |
|
| 82 |
+### README.md |
|
| 83 |
+ |
|
| 84 |
+If you have a `README.md` file in your repository, we will use that as the |
|
| 85 |
+repository's full description. |
|
| 86 |
+ |
|
| 87 |
+> **Warning:** |
|
| 88 |
+> If you change the full description after a build, it will be |
|
| 89 |
+> rewritten the next time the Trusted Build has been built. To make changes, |
|
| 90 |
+> modify the README.md from the Git repository. We will look for a README.md |
|
| 91 |
+> in the same directory as your Dockerfile. |
|
| 92 |
+ |
|
| 93 |
+### Build triggers |
|
| 94 |
+ |
|
| 95 |
+If you need another way to trigger your Trusted Builds outside of GitHub, you |
|
| 96 |
+can setup a build trigger. When you turn on the build trigger for a Trusted |
|
| 97 |
+Build, it will give you a URL to which you can send POST requests. This will |
|
| 98 |
+trigger the Trusted Build process, which is similar to GitHub webhooks. |
|
| 99 |
+ |
|
| 100 |
+> **Note:** |
|
| 101 |
+> You can only trigger one build at a time and no more than one |
|
| 102 |
+> every five minutes. If you have a build already pending, or if you already |
|
| 103 |
+> recently submitted a build request, those requests *will be ignored*. |
|
| 104 |
+> You can find the logs of last 10 triggers on the settings page to verify |
|
| 105 |
+> if everything is working correctly. |
|
| 106 |
+ |
|
| 107 |
+### Repository links |
|
| 108 |
+ |
|
| 109 |
+Repository links are a way to associate one Trusted Build with another. If one |
|
| 110 |
+gets updated, linking system also triggers a build for the other Trusted Build. |
|
| 111 |
+This makes it easy to keep your Trusted Builds up to date. |
|
| 112 |
+ |
|
| 113 |
+To add a link, go to the settings page of a Trusted Build and click on |
|
| 114 |
+*Repository Links*. Then enter the name of the repository that you want have |
|
| 115 |
+linked. |
|
| 116 |
+ |
|
| 117 |
+> **Warning:** |
|
| 118 |
+> You can add more than one repository link, however, you should |
|
| 119 |
+> be very careful. Creating a two way relationship between Trusted Builds will |
|
| 120 |
+> cause a never ending build loop. |
| 0 | 121 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,13 @@ |
| 0 |
+page_title: The Docker.io Registry Help |
|
| 1 |
+page_description: The Docker Registry help documentation home |
|
| 2 |
+page_keywords: Docker, docker, registry, accounts, plans, Dockerfile, Docker.io, docs, documentation |
|
| 3 |
+ |
|
| 4 |
+# The Docker.io Registry Help |
|
| 5 |
+ |
|
| 6 |
+## Introduction |
|
| 7 |
+ |
|
| 8 |
+For your questions about the [Docker.io](https://index.docker.io) registry you |
|
| 9 |
+can use [this documentation](docs.md). |
|
| 10 |
+ |
|
| 11 |
+If you can not find something you are looking for, please feel free to |
|
| 12 |
+[contact us](https://index.docker.io/help/support/). |
|
| 0 | 13 |
\ No newline at end of file |
| 0 | 15 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,98 @@ |
| 0 |
+page_title: Repositories and Images on Docker.io |
|
| 1 |
+page_description: Repositories and Images on Docker.io |
|
| 2 |
+page_keywords: Docker, docker, registry, accounts, plans, Dockerfile, Docker.io, docs, documentation |
|
| 3 |
+ |
|
| 4 |
+# Repositories and Images on Docker.io |
|
| 5 |
+ |
|
| 6 |
+## Searching for repositories and images |
|
| 7 |
+ |
|
| 8 |
+You can `search` for all the publicly available repositories and images using |
|
| 9 |
+Docker. If a repository is not public (i.e., private), it won't be listed on |
|
| 10 |
+the repository search results. To see repository statuses, you can look at your |
|
| 11 |
+[profile page](https://index.docker.io/account/) on [Docker.io]( |
|
| 12 |
+https://index.docker.io). |
|
| 13 |
+ |
|
| 14 |
+## Repositories |
|
| 15 |
+ |
|
| 16 |
+### Stars |
|
| 17 |
+ |
|
| 18 |
+Stars are a way to show that you like a repository. They are also an easy way |
|
| 19 |
+of bookmark your favorites. |
|
| 20 |
+ |
|
| 21 |
+### Comments |
|
| 22 |
+ |
|
| 23 |
+You can interact with other members of the Docker community and maintainers by |
|
| 24 |
+leaving comments on repositories. If you find any comments that are not |
|
| 25 |
+appropriate, you can flag them for the admins' review. |
|
| 26 |
+ |
|
| 27 |
+### Private Docker Repositories |
|
| 28 |
+ |
|
| 29 |
+To work with a private repository on [Docker.io](https://index.docker.io), you |
|
| 30 |
+will need to add one via the [Add Repository](https://index.docker.io/account/repositories/add) |
|
| 31 |
+link. Once the private repository is created, you can `push` and `pull` images |
|
| 32 |
+to and from it using Docker. |
|
| 33 |
+ |
|
| 34 |
+> *Note:* You need to be signed in and have access to work with a private |
|
| 35 |
+> repository. |
|
| 36 |
+ |
|
| 37 |
+Private repositories are just like public ones. However, it isn't possible to |
|
| 38 |
+browse them or search their content on the public registry. They do not get cached |
|
| 39 |
+the same way as a public repository either. |
|
| 40 |
+ |
|
| 41 |
+It is possible to give access to a private repository to those whom you |
|
| 42 |
+designate (i.e., collaborators) from its settings page. |
|
| 43 |
+ |
|
| 44 |
+From there, you can also switch repository status (*public* to *private*, or |
|
| 45 |
+viceversa). You will need to have an available private repository slot open |
|
| 46 |
+before you can do such a switch. If you don't have any, you can always upgrade |
|
| 47 |
+your [Docker.io](https://index.docker.io/plans/) plan. |
|
| 48 |
+ |
|
| 49 |
+### Collaborators and their role |
|
| 50 |
+ |
|
| 51 |
+A collaborator is someone you want to give access to a private repository. Once |
|
| 52 |
+designated, they can `push` and `pull`. Although, they will not be allowed to |
|
| 53 |
+perform any administrative tasks such as deleting the repository or changing its |
|
| 54 |
+status from private to public. |
|
| 55 |
+ |
|
| 56 |
+> **Note:** A collaborator can not add other collaborators. Only the owner of |
|
| 57 |
+> the repository has administrative access. |
|
| 58 |
+ |
|
| 59 |
+### Webhooks |
|
| 60 |
+ |
|
| 61 |
+You can configure webhooks on the repository settings page. A webhook is called |
|
| 62 |
+only after a successful `push` is made. The webhook calls are HTTP POST requests |
|
| 63 |
+with a JSON payload similar to the example shown below. |
|
| 64 |
+ |
|
| 65 |
+> **Note:** For testing, you can try an HTTP request tool like |
|
| 66 |
+> [requestb.in](http://requestb.in/). |
|
| 67 |
+ |
|
| 68 |
+*Example webhook JSON payload:* |
|
| 69 |
+ |
|
| 70 |
+ {
|
|
| 71 |
+ "push_data":{
|
|
| 72 |
+ "pushed_at":1385141110, |
|
| 73 |
+ "images":[ |
|
| 74 |
+ "imagehash1", |
|
| 75 |
+ "imagehash2", |
|
| 76 |
+ "imagehash3" |
|
| 77 |
+ ], |
|
| 78 |
+ "pusher":"username" |
|
| 79 |
+ }, |
|
| 80 |
+ "repository":{
|
|
| 81 |
+ "status":"Active", |
|
| 82 |
+ "description":"my docker repo that does cool things", |
|
| 83 |
+ "is_trusted":false, |
|
| 84 |
+ "full_description":"This is my full description", |
|
| 85 |
+ "repo_url":"https://index.docker.io/u/username/reponame/", |
|
| 86 |
+ "owner":"username", |
|
| 87 |
+ "is_official":false, |
|
| 88 |
+ "is_private":false, |
|
| 89 |
+ "name":"reponame", |
|
| 90 |
+ "namespace":"username", |
|
| 91 |
+ "star_count":1, |
|
| 92 |
+ "comment_count":1, |
|
| 93 |
+ "date_created":1370174400, |
|
| 94 |
+ "dockerfile":"my full dockerfile is listed here", |
|
| 95 |
+ "repo_name":"username/reponame" |
|
| 96 |
+ } |
|
| 97 |
+ } |
| ... | ... |
@@ -35,11 +35,10 @@ Download the small base image named `busybox`: |
| 35 | 35 |
# Download a busybox image |
| 36 | 36 |
$ sudo docker pull busybox |
| 37 | 37 |
|
| 38 |
-The `busybox` image is a minimal Linux system. You |
|
| 39 |
-can do the same with any number of other images, such as |
|
| 40 |
-`debian`, `ubuntu` or |
|
| 41 |
-`centos`. The images can be found and retrieved |
|
| 42 |
-using the [Docker index](http://index.docker.io). |
|
| 38 |
+The `busybox` image is a minimal Linux system. You can do the same with |
|
| 39 |
+any number of other images, such as `debian`, `ubuntu` or `centos`. The |
|
| 40 |
+images can be found and retrieved using the |
|
| 41 |
+[Docker.io](http://index.docker.io) registry. |
|
| 43 | 42 |
|
| 44 | 43 |
$ sudo docker run busybox /bin/echo hello world |
| 45 | 44 |
|
| 46 | 45 |
deleted file mode 100644 |
| ... | ... |
@@ -1,31 +0,0 @@ |
| 1 |
-page_title: Accounts in the Docker Index |
|
| 2 |
-page_description: Docker Index accounts |
|
| 3 |
-page_keywords: Docker, docker, index, accounts, plans, Dockerfile, Docker.io, docs, documentation |
|
| 4 |
- |
|
| 5 |
-# Accounts in the Docker Index |
|
| 6 |
- |
|
| 7 |
-## Docker IO and Docker Index Accounts |
|
| 8 |
- |
|
| 9 |
-You can `search` for Docker images and `pull` them from the [Docker Index]( |
|
| 10 |
-https://index.docker.io) without signing in or even having an account. However, |
|
| 11 |
-in order to `push` images, leave comments or to *star* a repository, you are going |
|
| 12 |
-to need a [Docker IO](https://www.docker.io) account. |
|
| 13 |
- |
|
| 14 |
-### Registration for a Docker IO Account |
|
| 15 |
- |
|
| 16 |
-You can get a Docker IO account by [signing up for one here]( |
|
| 17 |
-https://www.docker.io/account/signup/). A valid email address is required to |
|
| 18 |
-register, which you will need to verify for account activation. |
|
| 19 |
- |
|
| 20 |
-### Email activation process |
|
| 21 |
- |
|
| 22 |
-You need to have at least one verified email address to be able to use your |
|
| 23 |
-Docker IO account. If you can't find the validation email, you can request |
|
| 24 |
-another by visiting the [Resend Email Confirmation]( |
|
| 25 |
-https://www.docker.io/account/resend-email-confirmation/) page. |
|
| 26 |
- |
|
| 27 |
-### Password reset process |
|
| 28 |
- |
|
| 29 |
-If you can't access your account for some reason, you can reset your password |
|
| 30 |
-from the [*Password Reset*](https://www.docker.io/account/forgot-password/) |
|
| 31 |
-page. |
|
| 32 | 1 |
\ No newline at end of file |
| 33 | 2 |
deleted file mode 100644 |
| ... | ... |
@@ -1,121 +0,0 @@ |
| 1 |
-page_title: Trusted Builds in the Docker Index |
|
| 2 |
-page_description: Docker Index Trusted Builds |
|
| 3 |
-page_keywords: Docker, docker, index, accounts, plans, Dockerfile, Docker.io, docs, documentation, trusted, builds, trusted builds |
|
| 4 |
- |
|
| 5 |
-# Trusted Builds in the Docker Index |
|
| 6 |
- |
|
| 7 |
-## Trusted Builds |
|
| 8 |
- |
|
| 9 |
-*Trusted Builds* is a special feature allowing you to specify a source |
|
| 10 |
-repository with a *Dockerfile* to be built by the Docker build clusters. The |
|
| 11 |
-system will clone your repository and build the Dockerfile using the repository |
|
| 12 |
-as the context. The resulting image will then be uploaded to the index and |
|
| 13 |
-marked as a `Trusted Build`. |
|
| 14 |
- |
|
| 15 |
-Trusted Builds have a number of advantages. For example, users of *your* Trusted |
|
| 16 |
-Build can be certain that the resulting image was built exactly how it claims |
|
| 17 |
-to be. |
|
| 18 |
- |
|
| 19 |
-Furthermore, the Dockerfile will be available to anyone browsing your repository |
|
| 20 |
-on the Index. Another advantage of the Trusted Builds feature is the automated |
|
| 21 |
-builds. This makes sure that your repository is always up to date. |
|
| 22 |
- |
|
| 23 |
-### Linking with a GitHub account |
|
| 24 |
- |
|
| 25 |
-In order to setup a Trusted Build, you need to first link your Docker Index |
|
| 26 |
-account with a GitHub one. This will allow the Docker Index to see your |
|
| 27 |
-repositories. |
|
| 28 |
- |
|
| 29 |
-> *Note:* We currently request access for *read* and *write* since the Index |
|
| 30 |
-> needs to setup a GitHub service hook. Although nothing else is done with |
|
| 31 |
-> your account, this is how GitHub manages permissions, sorry! |
|
| 32 |
- |
|
| 33 |
-### Creating a Trusted Build |
|
| 34 |
- |
|
| 35 |
-You can [create a Trusted Build](https://index.docker.io/builds/github/select/) |
|
| 36 |
-from any of your public GitHub repositories with a Dockerfile. |
|
| 37 |
- |
|
| 38 |
-> **Note:** We currently only support public repositories. To have more than |
|
| 39 |
-> one Docker image from the same GitHub repository, you will need to set up one |
|
| 40 |
-> Trusted Build per Dockerfile, each using a different image name. This rule |
|
| 41 |
-> applies to building multiple branches on the same GitHub repository as well. |
|
| 42 |
- |
|
| 43 |
-### GitHub organizations |
|
| 44 |
- |
|
| 45 |
-GitHub organizations appear once your membership to that organization is |
|
| 46 |
-made public on GitHub. To verify, you can look at the members tab for your |
|
| 47 |
-organization on GitHub. |
|
| 48 |
- |
|
| 49 |
-### GitHub service hooks |
|
| 50 |
- |
|
| 51 |
-You can follow the below steps to configure the GitHub service hooks for your |
|
| 52 |
-Trusted Build: |
|
| 53 |
- |
|
| 54 |
-<table class="table table-bordered"> |
|
| 55 |
- <thead> |
|
| 56 |
- <tr> |
|
| 57 |
- <th>Step</th> |
|
| 58 |
- <th>Screenshot</th> |
|
| 59 |
- <th>Description</th> |
|
| 60 |
- </tr> |
|
| 61 |
- </thead> |
|
| 62 |
- <tbody> |
|
| 63 |
- <tr> |
|
| 64 |
- <td>1.</td> |
|
| 65 |
- <td><img src="https://d207aa93qlcgug.cloudfront.net/0.8/img/github_settings.png"></td> |
|
| 66 |
- <td>Login to Github.com, and visit your Repository page. Click on the repository "Settings" link. You will need admin rights to the repository in order to do this. So if you don't have admin rights, you will need to ask someone who does.</td> |
|
| 67 |
- </tr> |
|
| 68 |
- <tr> |
|
| 69 |
- <td>2.</td> |
|
| 70 |
- <td><img src="https://d207aa93qlcgug.cloudfront.net/0.8/img/github_service_hooks.png" alt="Service Hooks"></td> |
|
| 71 |
- <td>Click on the "Service Hooks" link</td></tr><tr><td>3.</td><td><img src="https://d207aa93qlcgug.cloudfront.net/0.8/img/github_docker_service_hook.png" alt="Find the service hook labeled Docker"></td><td>Find the service hook labeled "Docker" and click on it.</td></tr><tr><td>4.</td><td><img src="https://d207aa93qlcgug.cloudfront.net/0.8/img/github_service_hook_docker_activate.png" alt="Activate Service Hooks"></td> |
|
| 72 |
- <td>Click on the "Active" checkbox and then the "Update settings" button, to save changes.</td> |
|
| 73 |
- </tr> |
|
| 74 |
- </tbody> |
|
| 75 |
-</table> |
|
| 76 |
- |
|
| 77 |
-### The Dockerfile and Trusted Builds |
|
| 78 |
- |
|
| 79 |
-During the build process, we copy the contents of your Dockerfile. We also |
|
| 80 |
-add it to the Docker Index for the Docker community to see on the repository |
|
| 81 |
-page. |
|
| 82 |
- |
|
| 83 |
-### README.md |
|
| 84 |
- |
|
| 85 |
-If you have a `README.md` file in your repository, we will use that as the |
|
| 86 |
-repository's full description. |
|
| 87 |
- |
|
| 88 |
-> **Warning:** |
|
| 89 |
-> If you change the full description after a build, it will be |
|
| 90 |
-> rewritten the next time the Trusted Build has been built. To make changes, |
|
| 91 |
-> modify the README.md from the Git repository. We will look for a README.md |
|
| 92 |
-> in the same directory as your Dockerfile. |
|
| 93 |
- |
|
| 94 |
-### Build triggers |
|
| 95 |
- |
|
| 96 |
-If you need another way to trigger your Trusted Builds outside of GitHub, you |
|
| 97 |
-can setup a build trigger. When you turn on the build trigger for a Trusted |
|
| 98 |
-Build, it will give you a URL to which you can send POST requests. This will |
|
| 99 |
-trigger the Trusted Build process, which is similar to GitHub webhooks. |
|
| 100 |
- |
|
| 101 |
-> **Note:** |
|
| 102 |
-> You can only trigger one build at a time and no more than one |
|
| 103 |
-> every five minutes. If you have a build already pending, or if you already |
|
| 104 |
-> recently submitted a build request, those requests *will be ignored*. |
|
| 105 |
-> You can find the logs of last 10 triggers on the settings page to verify |
|
| 106 |
-> if everything is working correctly. |
|
| 107 |
- |
|
| 108 |
-### Repository links |
|
| 109 |
- |
|
| 110 |
-Repository links are a way to associate one Trusted Build with another. If one |
|
| 111 |
-gets updated, linking system also triggers a build for the other Trusted Build. |
|
| 112 |
-This makes it easy to keep your Trusted Builds up to date. |
|
| 113 |
- |
|
| 114 |
-To add a link, go to the settings page of a Trusted Build and click on |
|
| 115 |
-*Repository Links*. Then enter the name of the repository that you want have |
|
| 116 |
-linked. |
|
| 117 |
- |
|
| 118 |
-> **Warning:** |
|
| 119 |
-> You can add more than one repository link, however, you should |
|
| 120 |
-> be very careful. Creating a two way relationship between Trusted Builds will |
|
| 121 |
-> cause a never ending build loop. |
| 122 | 1 |
deleted file mode 100644 |
| ... | ... |
@@ -1,13 +0,0 @@ |
| 1 |
-page_title: The Docker Index Help |
|
| 2 |
-page_description: The Docker Index help documentation home |
|
| 3 |
-page_keywords: Docker, docker, index, accounts, plans, Dockerfile, Docker.io, docs, documentation |
|
| 4 |
- |
|
| 5 |
-# The Docker Index Help |
|
| 6 |
- |
|
| 7 |
-## Introduction |
|
| 8 |
- |
|
| 9 |
-For your questions about the [Docker Index](https://index.docker.io) you can |
|
| 10 |
-use [this documentation](docs.md). |
|
| 11 |
- |
|
| 12 |
-If you can not find something you are looking for, please feel free to |
|
| 13 |
-[contact us](https://index.docker.io/help/support/). |
|
| 14 | 1 |
\ No newline at end of file |
| 16 | 1 |
deleted file mode 100644 |
| ... | ... |
@@ -1,97 +0,0 @@ |
| 1 |
-page_title: Repositories and Images in the Docker Index |
|
| 2 |
-page_description: Docker Index repositories |
|
| 3 |
-page_keywords: Docker, docker, index, accounts, plans, Dockerfile, Docker.io, docs, documentation |
|
| 4 |
- |
|
| 5 |
-# Repositories and Images in the Docker Index |
|
| 6 |
- |
|
| 7 |
-## Searching for repositories and images |
|
| 8 |
- |
|
| 9 |
-You can `search` for all the publicly available repositories and images using |
|
| 10 |
-Docker. If a repository is not public (i.e., private), it won't be listed on |
|
| 11 |
-the Index search results. To see repository statuses, you can look at your |
|
| 12 |
-[profile page](https://index.docker.io/account/). |
|
| 13 |
- |
|
| 14 |
-## Repositories |
|
| 15 |
- |
|
| 16 |
-### Stars |
|
| 17 |
- |
|
| 18 |
-Stars are a way to show that you like a repository. They are also an easy way |
|
| 19 |
-of bookmark your favorites. |
|
| 20 |
- |
|
| 21 |
-### Comments |
|
| 22 |
- |
|
| 23 |
-You can interact with other members of the Docker community and maintainers by |
|
| 24 |
-leaving comments on repositories. If you find any comments that are not |
|
| 25 |
-appropriate, you can flag them for the Index admins' review. |
|
| 26 |
- |
|
| 27 |
-### Private Docker Repositories |
|
| 28 |
- |
|
| 29 |
-To work with a private repository on the Docker Index, you will need to add one |
|
| 30 |
-via the [Add Repository](https://index.docker.io/account/repositories/add) link. |
|
| 31 |
-Once the private repository is created, you can `push` and `pull` images to and |
|
| 32 |
-from it using Docker. |
|
| 33 |
- |
|
| 34 |
-> *Note:* You need to be signed in and have access to work with a private |
|
| 35 |
-> repository. |
|
| 36 |
- |
|
| 37 |
-Private repositories are just like public ones. However, it isn't possible to |
|
| 38 |
-browse them or search their content on the public index. They do not get cached |
|
| 39 |
-the same way as a public repository either. |
|
| 40 |
- |
|
| 41 |
-It is possible to give access to a private repository to those whom you |
|
| 42 |
-designate (i.e., collaborators) from its settings page. |
|
| 43 |
- |
|
| 44 |
-From there, you can also switch repository status (*public* to *private*, or |
|
| 45 |
-viceversa). You will need to have an available private repository slot open |
|
| 46 |
-before you can do such a switch. If you don't have any, you can always upgrade |
|
| 47 |
-your [Docker Index plan](https://index.docker.io/plans/). |
|
| 48 |
- |
|
| 49 |
-### Collaborators and their role |
|
| 50 |
- |
|
| 51 |
-A collaborator is someone you want to give access to a private repository. Once |
|
| 52 |
-designated, they can `push` and `pull`. Although, they will not be allowed to |
|
| 53 |
-perform any administrative tasks such as deleting the repository or changing its |
|
| 54 |
-status from private to public. |
|
| 55 |
- |
|
| 56 |
-> **Note:** A collaborator can not add other collaborators. Only the owner of |
|
| 57 |
-> the repository has administrative access. |
|
| 58 |
- |
|
| 59 |
-### Webhooks |
|
| 60 |
- |
|
| 61 |
-You can configure webhooks on the repository settings page. A webhook is called |
|
| 62 |
-only after a successful `push` is made. The webhook calls are HTTP POST requests |
|
| 63 |
-with a JSON payload similar to the example shown below. |
|
| 64 |
- |
|
| 65 |
-> **Note:** For testing, you can try an HTTP request tool like |
|
| 66 |
-> [requestb.in](http://requestb.in/). |
|
| 67 |
- |
|
| 68 |
-*Example webhook JSON payload:* |
|
| 69 |
- |
|
| 70 |
- {
|
|
| 71 |
- "push_data":{
|
|
| 72 |
- "pushed_at":1385141110, |
|
| 73 |
- "images":[ |
|
| 74 |
- "imagehash1", |
|
| 75 |
- "imagehash2", |
|
| 76 |
- "imagehash3" |
|
| 77 |
- ], |
|
| 78 |
- "pusher":"username" |
|
| 79 |
- }, |
|
| 80 |
- "repository":{
|
|
| 81 |
- "status":"Active", |
|
| 82 |
- "description":"my docker repo that does cool things", |
|
| 83 |
- "is_trusted":false, |
|
| 84 |
- "full_description":"This is my full description", |
|
| 85 |
- "repo_url":"https://index.docker.io/u/username/reponame/", |
|
| 86 |
- "owner":"username", |
|
| 87 |
- "is_official":false, |
|
| 88 |
- "is_private":false, |
|
| 89 |
- "name":"reponame", |
|
| 90 |
- "namespace":"username", |
|
| 91 |
- "star_count":1, |
|
| 92 |
- "comment_count":1, |
|
| 93 |
- "date_created":1370174400, |
|
| 94 |
- "dockerfile":"my full dockerfile is listed here", |
|
| 95 |
- "repo_name":"username/reponame" |
|
| 96 |
- } |
|
| 97 |
- } |
| ... | ... |
@@ -43,7 +43,7 @@ Docker's main components are: |
| 43 | 43 |
|
| 44 | 44 |
- Docker *daemon*; |
| 45 | 45 |
- Docker *client*, and; |
| 46 |
- - The Docker Index. |
|
| 46 |
+ - [Docker.io](https://index.docker.io) registry. |
|
| 47 | 47 |
|
| 48 | 48 |
### The Docker daemon |
| 49 | 49 |
|
| ... | ... |
@@ -57,9 +57,9 @@ The Docker client is the primary user interface to Docker. It is tasked |
| 57 | 57 |
with accepting commands from the user and communicating back and forth |
| 58 | 58 |
with a Docker daemon to manage the container lifecycle on any host. |
| 59 | 59 |
|
| 60 |
-### Docker Index, the central Docker registry |
|
| 60 |
+### Docker.io registry |
|
| 61 | 61 |
|
| 62 |
-The [Docker Index](http://index.docker.io) is the global archive (and |
|
| 62 |
+[Docker.io](https://index.docker.io) is the global archive (and |
|
| 63 | 63 |
directory) of user supplied Docker container images. It currently hosts |
| 64 | 64 |
a large – in fact, rapidly growing – number of projects where you |
| 65 | 65 |
can find almost any popular application or deployment stack readily |
| ... | ... |
@@ -70,28 +70,29 @@ tools for everyone to grow with other *Dockers*. By issuing a single |
| 70 | 70 |
command through the Docker client you can start sharing your own |
| 71 | 71 |
creations with the rest of the world. |
| 72 | 72 |
|
| 73 |
-However, knowing that not everything can be shared the Docker Index also |
|
| 74 |
-offers private repositories. In order to see the available plans, you |
|
| 75 |
-can click [here](https://index.docker.io/plans). |
|
| 73 |
+However, knowing that not everything can be shared the [Docker.io]( |
|
| 74 |
+https://index.docker.io) also offers private repositories. In order to see |
|
| 75 |
+the available plans, you can click [here](https://index.docker.io/plans). |
|
| 76 | 76 |
|
| 77 |
-Using the [Docker Registry](https://github.com/dotcloud/docker-registry), it is |
|
| 77 |
+Using [*docker-registry*](https://github.com/dotcloud/docker-registry), it is |
|
| 78 | 78 |
also possible to run your own private Docker image registry service on your own |
| 79 | 79 |
servers. |
| 80 | 80 |
|
| 81 |
-> **Note:** To learn more about the [*Docker Image Index*]( |
|
| 82 |
-> http://index.docker.io) (public *and* private), check out the [Registry & |
|
| 81 |
+> **Note:** To learn more about the [*Docker.io*](http://index.docker.io) |
|
| 82 |
+> registry (for public *and* private repositories), check out the [Registry & |
|
| 83 | 83 |
> Index Spec](http://docs.docker.io/api/registry_index_spec/). |
| 84 | 84 |
|
| 85 | 85 |
### Summary |
| 86 | 86 |
|
| 87 | 87 |
- **When you install Docker, you get all the components:** |
| 88 |
- The daemon, the client and access to the public image registry: the [Docker Index](http://index.docker.io). |
|
| 88 |
+ The daemon, the client and access to the [Docker.io](http://index.docker.io) registry. |
|
| 89 | 89 |
- **You can run these components together or distributed:** |
| 90 | 90 |
Servers with the Docker daemon running, controlled by the Docker client. |
| 91 | 91 |
- **You can benefit form the public registry:** |
| 92 | 92 |
Download and build upon images created by the community. |
| 93 | 93 |
- **You can start a private repository for proprietary use.** |
| 94 |
- Sign up for a [plan](https://index.docker.io/plans) or host your own [Docker registry](https://github.com/dotcloud/docker-registry). |
|
| 94 |
+ Sign up for a [plan](https://index.docker.io/plans) or host your own [docker-registry]( |
|
| 95 |
+https://github.com/dotcloud/docker-registry). |
|
| 95 | 96 |
|
| 96 | 97 |
## Elements of Docker |
| 97 | 98 |
|
| ... | ... |
@@ -198,7 +199,7 @@ Docker begins with: |
| 198 | 198 |
|
| 199 | 199 |
- **Pulling the `ubuntu` image:** |
| 200 | 200 |
Docker checks for the presence of the `ubuntu` image and if it doesn't |
| 201 |
- exist locally on the host, then Docker downloads it from the [Docker Index](https://index.docker.io) |
|
| 201 |
+ exist locally on the host, then Docker downloads it from [Docker.io](https://index.docker.io) |
|
| 202 | 202 |
- **Creates a new container:** |
| 203 | 203 |
Once Docker has the image it creates a container from it. |
| 204 | 204 |
- **Allocates a filesystem and mounts a read-write _layer_:** |
| ... | ... |
@@ -226,28 +227,27 @@ UnionFS technology we saw earlier. |
| 226 | 226 |
|
| 227 | 227 |
Every image starts from a base image, for example `ubuntu` a base Ubuntu |
| 228 | 228 |
image or `fedora` a base Fedora image. Docker builds and provides these |
| 229 |
-base images via the [Docker Index](http://index.docker.io). |
|
| 229 |
+base images via [Docker.io](http://index.docker.io). |
|
| 230 | 230 |
|
| 231 | 231 |
### How does a Docker registry work? |
| 232 | 232 |
|
| 233 | 233 |
The Docker registry is a store for your Docker images. Once you build a |
| 234 |
-Docker image you can *push* it to the [Docker |
|
| 235 |
-Index](http://index.docker.io) or to a private registry you run behind |
|
| 236 |
-your firewall. |
|
| 234 |
+Docker image you can *push* it to a public or private repository on [Docker.io]( |
|
| 235 |
+http://index.docker.io) or to your own registry running behind your firewall. |
|
| 237 | 236 |
|
| 238 | 237 |
Using the Docker client, you can search for already published images and |
| 239 | 238 |
then pull them down to your Docker host to build containers from them |
| 240 | 239 |
(or even build on these images). |
| 241 | 240 |
|
| 242 |
-The [Docker Index](http://index.docker.io) provides both public and |
|
| 241 |
+[Docker.io](http://index.docker.io) provides both public and |
|
| 243 | 242 |
private storage for images. Public storage is searchable and can be |
| 244 | 243 |
downloaded by anyone. Private repositories are excluded from search |
| 245 | 244 |
results and only you and your users can pull them down and use them to |
| 246 | 245 |
build containers. You can [sign up for a plan here](https://index.docker.io/plans). |
| 247 | 246 |
|
| 248 |
-To learn more, check out the [Working With Repositories]( |
|
| 249 |
-http://docs.docker.io/use/workingwithrepository) section of our |
|
| 250 |
-[User's Manual](http://docs.docker.io). |
|
| 247 |
+To learn more, check out the [Working with Repositories]( |
|
| 248 |
+http://docs.docker.io/use/workingwithrepository) section from the |
|
| 249 |
+[Docker documentation](http://docs.docker.io). |
|
| 251 | 250 |
|
| 252 | 251 |
## Where to go from here |
| 253 | 252 |
|
| ... | ... |
@@ -179,10 +179,10 @@ Without dealing with complicated commands or third party applications. |
| 179 | 179 |
Docker allows you to share the images you've built with the world. And |
| 180 | 180 |
lots of people have already shared their own images. |
| 181 | 181 |
|
| 182 |
-To facilitate this sharing Docker comes with a public registry and index |
|
| 183 |
-called the [Docker Index](http://index.docker.io). If you don't want |
|
| 184 |
-your images to be public you can also use private images on the Index or |
|
| 185 |
-even run your own registry behind your firewall. |
|
| 182 |
+To facilitate this sharing Docker comes with a public registry called |
|
| 183 |
+[Docker.io](http://index.docker.io). If you don't want your images to be |
|
| 184 |
+public you can also use private images on [Docker.io](https://index.docker.io) |
|
| 185 |
+or even run your own registry behind your firewall. |
|
| 186 | 186 |
|
| 187 | 187 |
**This translates to:** |
| 188 | 188 |
|
| ... | ... |
@@ -42,7 +42,7 @@ interfaces: |
| 42 | 42 |
|
| 43 | 43 |
- [3 Authorization](registry_api/#authorization) |
| 44 | 44 |
|
| 45 |
- - [Docker Index API](index_api/) |
|
| 45 |
+ - [Docker.io API](index_api/) |
|
| 46 | 46 |
- [1. Brief introduction](index_api/#brief-introduction) |
| 47 | 47 |
- [2. Endpoints](index_api/#endpoints) |
| 48 | 48 |
- [2.1 Repository](index_api/#repository) |
| ... | ... |
@@ -902,7 +902,7 @@ Remove the image `name` from the filesystem |
| 902 | 902 |
|
| 903 | 903 |
`GET /images/search` |
| 904 | 904 |
|
| 905 |
-Search for an image in the docker index. |
|
| 905 |
+Search for an image on [Docker.io](https://index.docker.io). |
|
| 906 | 906 |
|
| 907 | 907 |
> **Note**: |
| 908 | 908 |
> The response keys have changed from API v1.6 to reflect the JSON |
| ... | ... |
@@ -944,7 +944,7 @@ Remove the image `name` from the filesystem |
| 944 | 944 |
|
| 945 | 945 |
`GET /images/search` |
| 946 | 946 |
|
| 947 |
-Search for an image in the docker index. |
|
| 947 |
+Search for an image on [Docker.io](https://index.docker.io). |
|
| 948 | 948 |
|
| 949 | 949 |
> **Note**: |
| 950 | 950 |
> The response keys have changed from API v1.6 to reflect the JSON |
| 951 | 951 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,535 @@ |
| 0 |
+page_title: Docker.io API |
|
| 1 |
+page_description: API Documentation for the Docker.io API |
|
| 2 |
+page_keywords: API, Docker, index, REST, documentation, Docker.io, registry |
|
| 3 |
+ |
|
| 4 |
+# Docker.io API |
|
| 5 |
+ |
|
| 6 |
+## Introduction |
|
| 7 |
+ |
|
| 8 |
+- This is the REST API for [Docker.io](http://index.docker.io). |
|
| 9 |
+- Authorization is done with basic auth over SSL |
|
| 10 |
+- Not all commands require authentication, only those noted as such. |
|
| 11 |
+ |
|
| 12 |
+## Repository |
|
| 13 |
+ |
|
| 14 |
+### Repositories |
|
| 15 |
+ |
|
| 16 |
+#### User Repo |
|
| 17 |
+ |
|
| 18 |
+`PUT /v1/repositories/(namespace)/(repo_name)/` |
|
| 19 |
+ |
|
| 20 |
+Create a user repository with the given `namespace` and `repo_name`. |
|
| 21 |
+ |
|
| 22 |
+ **Example Request**: |
|
| 23 |
+ |
|
| 24 |
+ PUT /v1/repositories/foo/bar/ HTTP/1.1 |
|
| 25 |
+ Host: index.docker.io |
|
| 26 |
+ Accept: application/json |
|
| 27 |
+ Content-Type: application/json |
|
| 28 |
+ Authorization: Basic akmklmasadalkm== |
|
| 29 |
+ X-Docker-Token: true |
|
| 30 |
+ |
|
| 31 |
+ [{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f"}]
|
|
| 32 |
+ |
|
| 33 |
+ Parameters: |
|
| 34 |
+ |
|
| 35 |
+ - **namespace** – the namespace for the repo |
|
| 36 |
+ - **repo_name** – the name for the repo |
|
| 37 |
+ |
|
| 38 |
+ **Example Response**: |
|
| 39 |
+ |
|
| 40 |
+ HTTP/1.1 200 |
|
| 41 |
+ Vary: Accept |
|
| 42 |
+ Content-Type: application/json |
|
| 43 |
+ WWW-Authenticate: Token signature=123abc,repository="foo/bar",access=write |
|
| 44 |
+ X-Docker-Token: signature=123abc,repository="foo/bar",access=write |
|
| 45 |
+ X-Docker-Endpoints: registry-1.docker.io [, registry-2.docker.io] |
|
| 46 |
+ |
|
| 47 |
+ "" |
|
| 48 |
+ |
|
| 49 |
+ Status Codes: |
|
| 50 |
+ |
|
| 51 |
+ - **200** – Created |
|
| 52 |
+ - **400** – Errors (invalid json, missing or invalid fields, etc) |
|
| 53 |
+ - **401** – Unauthorized |
|
| 54 |
+ - **403** – Account is not Active |
|
| 55 |
+ |
|
| 56 |
+`DELETE /v1/repositories/(namespace)/(repo_name)/` |
|
| 57 |
+ |
|
| 58 |
+Delete a user repository with the given `namespace` and `repo_name`. |
|
| 59 |
+ |
|
| 60 |
+ **Example Request**: |
|
| 61 |
+ |
|
| 62 |
+ DELETE /v1/repositories/foo/bar/ HTTP/1.1 |
|
| 63 |
+ Host: index.docker.io |
|
| 64 |
+ Accept: application/json |
|
| 65 |
+ Content-Type: application/json |
|
| 66 |
+ Authorization: Basic akmklmasadalkm== |
|
| 67 |
+ X-Docker-Token: true |
|
| 68 |
+ |
|
| 69 |
+ "" |
|
| 70 |
+ |
|
| 71 |
+ Parameters: |
|
| 72 |
+ |
|
| 73 |
+ - **namespace** – the namespace for the repo |
|
| 74 |
+ - **repo_name** – the name for the repo |
|
| 75 |
+ |
|
| 76 |
+ **Example Response**: |
|
| 77 |
+ |
|
| 78 |
+ HTTP/1.1 202 |
|
| 79 |
+ Vary: Accept |
|
| 80 |
+ Content-Type: application/json |
|
| 81 |
+ WWW-Authenticate: Token signature=123abc,repository="foo/bar",access=delete |
|
| 82 |
+ X-Docker-Token: signature=123abc,repository="foo/bar",access=delete |
|
| 83 |
+ X-Docker-Endpoints: registry-1.docker.io [, registry-2.docker.io] |
|
| 84 |
+ |
|
| 85 |
+ "" |
|
| 86 |
+ |
|
| 87 |
+ Status Codes: |
|
| 88 |
+ |
|
| 89 |
+ - **200** – Deleted |
|
| 90 |
+ - **202** – Accepted |
|
| 91 |
+ - **400** – Errors (invalid json, missing or invalid fields, etc) |
|
| 92 |
+ - **401** – Unauthorized |
|
| 93 |
+ - **403** – Account is not Active |
|
| 94 |
+ |
|
| 95 |
+#### Library Repo |
|
| 96 |
+ |
|
| 97 |
+`PUT /v1/repositories/(repo_name)/` |
|
| 98 |
+ |
|
| 99 |
+Create a library repository with the given `repo_name`. |
|
| 100 |
+This is a restricted feature only available to docker admins. |
|
| 101 |
+ |
|
| 102 |
+ When namespace is missing, it is assumed to be `library` |
|
| 103 |
+ |
|
| 104 |
+ |
|
| 105 |
+ **Example Request**: |
|
| 106 |
+ |
|
| 107 |
+ PUT /v1/repositories/foobar/ HTTP/1.1 |
|
| 108 |
+ Host: index.docker.io |
|
| 109 |
+ Accept: application/json |
|
| 110 |
+ Content-Type: application/json |
|
| 111 |
+ Authorization: Basic akmklmasadalkm== |
|
| 112 |
+ X-Docker-Token: true |
|
| 113 |
+ |
|
| 114 |
+ [{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f"}]
|
|
| 115 |
+ |
|
| 116 |
+ Parameters: |
|
| 117 |
+ |
|
| 118 |
+ - **repo_name** – the library name for the repo |
|
| 119 |
+ |
|
| 120 |
+ **Example Response**: |
|
| 121 |
+ |
|
| 122 |
+ HTTP/1.1 200 |
|
| 123 |
+ Vary: Accept |
|
| 124 |
+ Content-Type: application/json |
|
| 125 |
+ WWW-Authenticate: Token signature=123abc,repository="library/foobar",access=write |
|
| 126 |
+ X-Docker-Token: signature=123abc,repository="foo/bar",access=write |
|
| 127 |
+ X-Docker-Endpoints: registry-1.docker.io [, registry-2.docker.io] |
|
| 128 |
+ |
|
| 129 |
+ "" |
|
| 130 |
+ |
|
| 131 |
+ Status Codes: |
|
| 132 |
+ |
|
| 133 |
+ - **200** – Created |
|
| 134 |
+ - **400** – Errors (invalid json, missing or invalid fields, etc) |
|
| 135 |
+ - **401** – Unauthorized |
|
| 136 |
+ - **403** – Account is not Active |
|
| 137 |
+ |
|
| 138 |
+`DELETE /v1/repositories/(repo_name)/` |
|
| 139 |
+ |
|
| 140 |
+Delete a library repository with the given `repo_name`. |
|
| 141 |
+This is a restricted feature only available to docker admins. |
|
| 142 |
+ |
|
| 143 |
+ When namespace is missing, it is assumed to be `library` |
|
| 144 |
+ |
|
| 145 |
+ |
|
| 146 |
+ **Example Request**: |
|
| 147 |
+ |
|
| 148 |
+ DELETE /v1/repositories/foobar/ HTTP/1.1 |
|
| 149 |
+ Host: index.docker.io |
|
| 150 |
+ Accept: application/json |
|
| 151 |
+ Content-Type: application/json |
|
| 152 |
+ Authorization: Basic akmklmasadalkm== |
|
| 153 |
+ X-Docker-Token: true |
|
| 154 |
+ |
|
| 155 |
+ "" |
|
| 156 |
+ |
|
| 157 |
+ Parameters: |
|
| 158 |
+ |
|
| 159 |
+ - **repo_name** – the library name for the repo |
|
| 160 |
+ |
|
| 161 |
+ **Example Response**: |
|
| 162 |
+ |
|
| 163 |
+ HTTP/1.1 202 |
|
| 164 |
+ Vary: Accept |
|
| 165 |
+ Content-Type: application/json |
|
| 166 |
+ WWW-Authenticate: Token signature=123abc,repository="library/foobar",access=delete |
|
| 167 |
+ X-Docker-Token: signature=123abc,repository="foo/bar",access=delete |
|
| 168 |
+ X-Docker-Endpoints: registry-1.docker.io [, registry-2.docker.io] |
|
| 169 |
+ |
|
| 170 |
+ "" |
|
| 171 |
+ |
|
| 172 |
+ Status Codes: |
|
| 173 |
+ |
|
| 174 |
+ - **200** – Deleted |
|
| 175 |
+ - **202** – Accepted |
|
| 176 |
+ - **400** – Errors (invalid json, missing or invalid fields, etc) |
|
| 177 |
+ - **401** – Unauthorized |
|
| 178 |
+ - **403** – Account is not Active |
|
| 179 |
+ |
|
| 180 |
+### Repository Images |
|
| 181 |
+ |
|
| 182 |
+#### User Repo Images |
|
| 183 |
+ |
|
| 184 |
+`PUT /v1/repositories/(namespace)/(repo_name)/images` |
|
| 185 |
+ |
|
| 186 |
+Update the images for a user repo. |
|
| 187 |
+ |
|
| 188 |
+ **Example Request**: |
|
| 189 |
+ |
|
| 190 |
+ PUT /v1/repositories/foo/bar/images HTTP/1.1 |
|
| 191 |
+ Host: index.docker.io |
|
| 192 |
+ Accept: application/json |
|
| 193 |
+ Content-Type: application/json |
|
| 194 |
+ Authorization: Basic akmklmasadalkm== |
|
| 195 |
+ |
|
| 196 |
+ [{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f",
|
|
| 197 |
+ "checksum": "b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087"}] |
|
| 198 |
+ |
|
| 199 |
+ Parameters: |
|
| 200 |
+ |
|
| 201 |
+ - **namespace** – the namespace for the repo |
|
| 202 |
+ - **repo_name** – the name for the repo |
|
| 203 |
+ |
|
| 204 |
+ **Example Response**: |
|
| 205 |
+ |
|
| 206 |
+ HTTP/1.1 204 |
|
| 207 |
+ Vary: Accept |
|
| 208 |
+ Content-Type: application/json |
|
| 209 |
+ |
|
| 210 |
+ "" |
|
| 211 |
+ |
|
| 212 |
+ Status Codes: |
|
| 213 |
+ |
|
| 214 |
+ - **204** – Created |
|
| 215 |
+ - **400** – Errors (invalid json, missing or invalid fields, etc) |
|
| 216 |
+ - **401** – Unauthorized |
|
| 217 |
+ - **403** – Account is not Active or permission denied |
|
| 218 |
+ |
|
| 219 |
+`GET /v1/repositories/(namespace)/(repo_name)/images` |
|
| 220 |
+ |
|
| 221 |
+Get the images for a user repo. |
|
| 222 |
+ |
|
| 223 |
+ **Example Request**: |
|
| 224 |
+ |
|
| 225 |
+ GET /v1/repositories/foo/bar/images HTTP/1.1 |
|
| 226 |
+ Host: index.docker.io |
|
| 227 |
+ Accept: application/json |
|
| 228 |
+ |
|
| 229 |
+ Parameters: |
|
| 230 |
+ |
|
| 231 |
+ - **namespace** – the namespace for the repo |
|
| 232 |
+ - **repo_name** – the name for the repo |
|
| 233 |
+ |
|
| 234 |
+ **Example Response**: |
|
| 235 |
+ |
|
| 236 |
+ HTTP/1.1 200 |
|
| 237 |
+ Vary: Accept |
|
| 238 |
+ Content-Type: application/json |
|
| 239 |
+ |
|
| 240 |
+ [{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f",
|
|
| 241 |
+ "checksum": "b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087"}, |
|
| 242 |
+ {"id": "ertwetewtwe38722009fe6857087b486531f9a779a0c1dfddgfgsdgdsgds",
|
|
| 243 |
+ "checksum": "34t23f23fc17e3ed29dae8f12c4f9e89cc6f0bsdfgfsdgdsgdsgerwgew"}] |
|
| 244 |
+ |
|
| 245 |
+ Status Codes: |
|
| 246 |
+ |
|
| 247 |
+ - **200** – OK |
|
| 248 |
+ - **404** – Not found |
|
| 249 |
+ |
|
| 250 |
+#### Library Repo Images |
|
| 251 |
+ |
|
| 252 |
+`PUT /v1/repositories/(repo_name)/images` |
|
| 253 |
+ |
|
| 254 |
+Update the images for a library repo. |
|
| 255 |
+ |
|
| 256 |
+ **Example Request**: |
|
| 257 |
+ |
|
| 258 |
+ PUT /v1/repositories/foobar/images HTTP/1.1 |
|
| 259 |
+ Host: index.docker.io |
|
| 260 |
+ Accept: application/json |
|
| 261 |
+ Content-Type: application/json |
|
| 262 |
+ Authorization: Basic akmklmasadalkm== |
|
| 263 |
+ |
|
| 264 |
+ [{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f",
|
|
| 265 |
+ "checksum": "b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087"}] |
|
| 266 |
+ |
|
| 267 |
+ Parameters: |
|
| 268 |
+ |
|
| 269 |
+ - **repo_name** – the library name for the repo |
|
| 270 |
+ |
|
| 271 |
+ **Example Response**: |
|
| 272 |
+ |
|
| 273 |
+ HTTP/1.1 204 |
|
| 274 |
+ Vary: Accept |
|
| 275 |
+ Content-Type: application/json |
|
| 276 |
+ |
|
| 277 |
+ "" |
|
| 278 |
+ |
|
| 279 |
+ Status Codes: |
|
| 280 |
+ |
|
| 281 |
+ - **204** – Created |
|
| 282 |
+ - **400** – Errors (invalid json, missing or invalid fields, etc) |
|
| 283 |
+ - **401** – Unauthorized |
|
| 284 |
+ - **403** – Account is not Active or permission denied |
|
| 285 |
+ |
|
| 286 |
+`GET /v1/repositories/(repo_name)/images` |
|
| 287 |
+ |
|
| 288 |
+Get the images for a library repo. |
|
| 289 |
+ |
|
| 290 |
+ **Example Request**: |
|
| 291 |
+ |
|
| 292 |
+ GET /v1/repositories/foobar/images HTTP/1.1 |
|
| 293 |
+ Host: index.docker.io |
|
| 294 |
+ Accept: application/json |
|
| 295 |
+ |
|
| 296 |
+ Parameters: |
|
| 297 |
+ |
|
| 298 |
+ - **repo_name** – the library name for the repo |
|
| 299 |
+ |
|
| 300 |
+ **Example Response**: |
|
| 301 |
+ |
|
| 302 |
+ HTTP/1.1 200 |
|
| 303 |
+ Vary: Accept |
|
| 304 |
+ Content-Type: application/json |
|
| 305 |
+ |
|
| 306 |
+ [{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f",
|
|
| 307 |
+ "checksum": "b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087"}, |
|
| 308 |
+ {"id": "ertwetewtwe38722009fe6857087b486531f9a779a0c1dfddgfgsdgdsgds",
|
|
| 309 |
+ "checksum": "34t23f23fc17e3ed29dae8f12c4f9e89cc6f0bsdfgfsdgdsgdsgerwgew"}] |
|
| 310 |
+ |
|
| 311 |
+ Status Codes: |
|
| 312 |
+ |
|
| 313 |
+ - **200** – OK |
|
| 314 |
+ - **404** – Not found |
|
| 315 |
+ |
|
| 316 |
+### Repository Authorization |
|
| 317 |
+ |
|
| 318 |
+#### Library Repo |
|
| 319 |
+ |
|
| 320 |
+`PUT /v1/repositories/(repo_name)/auth` |
|
| 321 |
+ |
|
| 322 |
+Authorize a token for a library repo |
|
| 323 |
+ |
|
| 324 |
+ **Example Request**: |
|
| 325 |
+ |
|
| 326 |
+ PUT /v1/repositories/foobar/auth HTTP/1.1 |
|
| 327 |
+ Host: index.docker.io |
|
| 328 |
+ Accept: application/json |
|
| 329 |
+ Authorization: Token signature=123abc,repository="library/foobar",access=write |
|
| 330 |
+ |
|
| 331 |
+ Parameters: |
|
| 332 |
+ |
|
| 333 |
+ - **repo_name** – the library name for the repo |
|
| 334 |
+ |
|
| 335 |
+ **Example Response**: |
|
| 336 |
+ |
|
| 337 |
+ HTTP/1.1 200 |
|
| 338 |
+ Vary: Accept |
|
| 339 |
+ Content-Type: application/json |
|
| 340 |
+ |
|
| 341 |
+ "OK" |
|
| 342 |
+ |
|
| 343 |
+ Status Codes: |
|
| 344 |
+ |
|
| 345 |
+ - **200** – OK |
|
| 346 |
+ - **403** – Permission denied |
|
| 347 |
+ - **404** – Not found |
|
| 348 |
+ |
|
| 349 |
+#### User Repo |
|
| 350 |
+ |
|
| 351 |
+`PUT /v1/repositories/(namespace)/(repo_name)/auth` |
|
| 352 |
+ |
|
| 353 |
+Authorize a token for a user repo |
|
| 354 |
+ |
|
| 355 |
+ **Example Request**: |
|
| 356 |
+ |
|
| 357 |
+ PUT /v1/repositories/foo/bar/auth HTTP/1.1 |
|
| 358 |
+ Host: index.docker.io |
|
| 359 |
+ Accept: application/json |
|
| 360 |
+ Authorization: Token signature=123abc,repository="foo/bar",access=write |
|
| 361 |
+ |
|
| 362 |
+ Parameters: |
|
| 363 |
+ |
|
| 364 |
+ - **namespace** – the namespace for the repo |
|
| 365 |
+ - **repo_name** – the name for the repo |
|
| 366 |
+ |
|
| 367 |
+ **Example Response**: |
|
| 368 |
+ |
|
| 369 |
+ HTTP/1.1 200 |
|
| 370 |
+ Vary: Accept |
|
| 371 |
+ Content-Type: application/json |
|
| 372 |
+ |
|
| 373 |
+ "OK" |
|
| 374 |
+ |
|
| 375 |
+ Status Codes: |
|
| 376 |
+ |
|
| 377 |
+ - **200** – OK |
|
| 378 |
+ - **403** – Permission denied |
|
| 379 |
+ - **404** – Not found |
|
| 380 |
+ |
|
| 381 |
+### Users |
|
| 382 |
+ |
|
| 383 |
+#### User Login |
|
| 384 |
+ |
|
| 385 |
+`GET /v1/users` |
|
| 386 |
+ |
|
| 387 |
+If you want to check your login, you can try this endpoint |
|
| 388 |
+ |
|
| 389 |
+ **Example Request**: |
|
| 390 |
+ |
|
| 391 |
+ GET /v1/users HTTP/1.1 |
|
| 392 |
+ Host: index.docker.io |
|
| 393 |
+ Accept: application/json |
|
| 394 |
+ Authorization: Basic akmklmasadalkm== |
|
| 395 |
+ |
|
| 396 |
+ **Example Response**: |
|
| 397 |
+ |
|
| 398 |
+ HTTP/1.1 200 OK |
|
| 399 |
+ Vary: Accept |
|
| 400 |
+ Content-Type: application/json |
|
| 401 |
+ |
|
| 402 |
+ OK |
|
| 403 |
+ |
|
| 404 |
+ Status Codes: |
|
| 405 |
+ |
|
| 406 |
+ - **200** – no error |
|
| 407 |
+ - **401** – Unauthorized |
|
| 408 |
+ - **403** – Account is not Active |
|
| 409 |
+ |
|
| 410 |
+#### User Register |
|
| 411 |
+ |
|
| 412 |
+`POST /v1/users` |
|
| 413 |
+ |
|
| 414 |
+Registering a new account. |
|
| 415 |
+ |
|
| 416 |
+ **Example request**: |
|
| 417 |
+ |
|
| 418 |
+ POST /v1/users HTTP/1.1 |
|
| 419 |
+ Host: index.docker.io |
|
| 420 |
+ Accept: application/json |
|
| 421 |
+ Content-Type: application/json |
|
| 422 |
+ |
|
| 423 |
+ {"email": "sam@dotcloud.com",
|
|
| 424 |
+ "password": "toto42", |
|
| 425 |
+ "username": "foobar"} |
|
| 426 |
+ |
|
| 427 |
+ Json Parameters: |
|
| 428 |
+ |
|
| 429 |
+ Â |
|
| 430 |
+ |
|
| 431 |
+ - **email** – valid email address, that needs to be confirmed |
|
| 432 |
+ - **username** – min 4 character, max 30 characters, must match |
|
| 433 |
+ the regular expression [a-z0-9_]. |
|
| 434 |
+ - **password** – min 5 characters |
|
| 435 |
+ |
|
| 436 |
+ **Example Response**: |
|
| 437 |
+ |
|
| 438 |
+ HTTP/1.1 201 OK |
|
| 439 |
+ Vary: Accept |
|
| 440 |
+ Content-Type: application/json |
|
| 441 |
+ |
|
| 442 |
+ "User Created" |
|
| 443 |
+ |
|
| 444 |
+ Status Codes: |
|
| 445 |
+ |
|
| 446 |
+ - **201** – User Created |
|
| 447 |
+ - **400** – Errors (invalid json, missing or invalid fields, etc) |
|
| 448 |
+ |
|
| 449 |
+#### Update User |
|
| 450 |
+ |
|
| 451 |
+`PUT /v1/users/(username)/` |
|
| 452 |
+ |
|
| 453 |
+Change a password or email address for given user. If you pass in an |
|
| 454 |
+ |
|
| 455 |
+ email, it will add it to your account, it will not remove the old |
|
| 456 |
+ one. Passwords will be updated. |
|
| 457 |
+ |
|
| 458 |
+ It is up to the client to verify that that password that is sent is |
|
| 459 |
+ the one that they want. Common approach is to have them type it |
|
| 460 |
+ twice. |
|
| 461 |
+ |
|
| 462 |
+ **Example Request**: |
|
| 463 |
+ |
|
| 464 |
+ PUT /v1/users/fakeuser/ HTTP/1.1 |
|
| 465 |
+ Host: index.docker.io |
|
| 466 |
+ Accept: application/json |
|
| 467 |
+ Content-Type: application/json |
|
| 468 |
+ Authorization: Basic akmklmasadalkm== |
|
| 469 |
+ |
|
| 470 |
+ {"email": "sam@dotcloud.com",
|
|
| 471 |
+ "password": "toto42"} |
|
| 472 |
+ |
|
| 473 |
+ Parameters: |
|
| 474 |
+ |
|
| 475 |
+ - **username** – username for the person you want to update |
|
| 476 |
+ |
|
| 477 |
+ **Example Response**: |
|
| 478 |
+ |
|
| 479 |
+ HTTP/1.1 204 |
|
| 480 |
+ Vary: Accept |
|
| 481 |
+ Content-Type: application/json |
|
| 482 |
+ |
|
| 483 |
+ "" |
|
| 484 |
+ |
|
| 485 |
+ Status Codes: |
|
| 486 |
+ |
|
| 487 |
+ - **204** – User Updated |
|
| 488 |
+ - **400** – Errors (invalid json, missing or invalid fields, etc) |
|
| 489 |
+ - **401** – Unauthorized |
|
| 490 |
+ - **403** – Account is not Active |
|
| 491 |
+ - **404** – User not found |
|
| 492 |
+ |
|
| 493 |
+## Search |
|
| 494 |
+ |
|
| 495 |
+If you need to search the index, this is the endpoint you would use. |
|
| 496 |
+ |
|
| 497 |
+### Search |
|
| 498 |
+ |
|
| 499 |
+`GET /v1/search` |
|
| 500 |
+ |
|
| 501 |
+Search the Index given a search term. It accepts |
|
| 502 |
+ |
|
| 503 |
+ [GET](http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3) |
|
| 504 |
+ only. |
|
| 505 |
+ |
|
| 506 |
+ **Example request**: |
|
| 507 |
+ |
|
| 508 |
+ GET /v1/search?q=search_term HTTP/1.1 |
|
| 509 |
+ Host: example.com |
|
| 510 |
+ Accept: application/json |
|
| 511 |
+ |
|
| 512 |
+ **Example response**: |
|
| 513 |
+ |
|
| 514 |
+ HTTP/1.1 200 OK |
|
| 515 |
+ Vary: Accept |
|
| 516 |
+ Content-Type: application/json |
|
| 517 |
+ |
|
| 518 |
+ {"query":"search_term",
|
|
| 519 |
+ "num_results": 3, |
|
| 520 |
+ "results" : [ |
|
| 521 |
+ {"name": "ubuntu", "description": "An ubuntu image..."},
|
|
| 522 |
+ {"name": "centos", "description": "A centos image..."},
|
|
| 523 |
+ {"name": "fedora", "description": "A fedora image..."}
|
|
| 524 |
+ ] |
|
| 525 |
+ } |
|
| 526 |
+ |
|
| 527 |
+ Query Parameters: |
|
| 528 |
+ |
|
| 529 |
+ - **q** – what you want to search for |
|
| 530 |
+ |
|
| 531 |
+ Status Codes: |
|
| 532 |
+ |
|
| 533 |
+ - **200** – no error |
|
| 534 |
+ - **500** – server error |
| ... | ... |
@@ -934,7 +934,7 @@ Tag the image `name` into a repository |
| 934 | 934 |
|
| 935 | 935 |
`GET /images/search` |
| 936 | 936 |
|
| 937 |
-Search for an image in the docker index. |
|
| 937 |
+Search for an image on [Docker.io](https://index.docker.io). |
|
| 938 | 938 |
|
| 939 | 939 |
> **Note**: |
| 940 | 940 |
> The response keys have changed from API v1.6 to reflect the JSON |
| ... | ... |
@@ -937,7 +937,7 @@ Remove the image `name` from the filesystem |
| 937 | 937 |
|
| 938 | 938 |
`GET /images/search` |
| 939 | 939 |
|
| 940 |
-Search for an image in the docker index. |
|
| 940 |
+Search for an image on [Docker.io](https://index.docker.io). |
|
| 941 | 941 |
|
| 942 | 942 |
> **Note**: |
| 943 | 943 |
> The response keys have changed from API v1.6 to reflect the JSON |
| ... | ... |
@@ -947,7 +947,7 @@ Tag the image `name` into a repository |
| 947 | 947 |
|
| 948 | 948 |
`GET /images/search` |
| 949 | 949 |
|
| 950 |
-Search for an image in the docker index. |
|
| 950 |
+Search for an image on [Docker.io](https://index.docker.io). |
|
| 951 | 951 |
|
| 952 | 952 |
> **Note**: |
| 953 | 953 |
> The response keys have changed from API v1.6 to reflect the JSON |
| 954 | 954 |
deleted file mode 100644 |
| ... | ... |
@@ -1,535 +0,0 @@ |
| 1 |
-page_title: Index API |
|
| 2 |
-page_description: API Documentation for Docker Index |
|
| 3 |
-page_keywords: API, Docker, index, REST, documentation |
|
| 4 |
- |
|
| 5 |
-# Docker Index API |
|
| 6 |
- |
|
| 7 |
-## Introduction |
|
| 8 |
- |
|
| 9 |
-- This is the REST API for the Docker index |
|
| 10 |
-- Authorization is done with basic auth over SSL |
|
| 11 |
-- Not all commands require authentication, only those noted as such. |
|
| 12 |
- |
|
| 13 |
-## Repository |
|
| 14 |
- |
|
| 15 |
-### Repositories |
|
| 16 |
- |
|
| 17 |
-#### User Repo |
|
| 18 |
- |
|
| 19 |
-`PUT /v1/repositories/(namespace)/(repo_name)/` |
|
| 20 |
- |
|
| 21 |
-Create a user repository with the given `namespace` and `repo_name`. |
|
| 22 |
- |
|
| 23 |
- **Example Request**: |
|
| 24 |
- |
|
| 25 |
- PUT /v1/repositories/foo/bar/ HTTP/1.1 |
|
| 26 |
- Host: index.docker.io |
|
| 27 |
- Accept: application/json |
|
| 28 |
- Content-Type: application/json |
|
| 29 |
- Authorization: Basic akmklmasadalkm== |
|
| 30 |
- X-Docker-Token: true |
|
| 31 |
- |
|
| 32 |
- [{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f"}]
|
|
| 33 |
- |
|
| 34 |
- Parameters: |
|
| 35 |
- |
|
| 36 |
- - **namespace** – the namespace for the repo |
|
| 37 |
- - **repo_name** – the name for the repo |
|
| 38 |
- |
|
| 39 |
- **Example Response**: |
|
| 40 |
- |
|
| 41 |
- HTTP/1.1 200 |
|
| 42 |
- Vary: Accept |
|
| 43 |
- Content-Type: application/json |
|
| 44 |
- WWW-Authenticate: Token signature=123abc,repository="foo/bar",access=write |
|
| 45 |
- X-Docker-Token: signature=123abc,repository="foo/bar",access=write |
|
| 46 |
- X-Docker-Endpoints: registry-1.docker.io [, registry-2.docker.io] |
|
| 47 |
- |
|
| 48 |
- "" |
|
| 49 |
- |
|
| 50 |
- Status Codes: |
|
| 51 |
- |
|
| 52 |
- - **200** – Created |
|
| 53 |
- - **400** – Errors (invalid json, missing or invalid fields, etc) |
|
| 54 |
- - **401** – Unauthorized |
|
| 55 |
- - **403** – Account is not Active |
|
| 56 |
- |
|
| 57 |
-`DELETE /v1/repositories/(namespace)/(repo_name)/` |
|
| 58 |
- |
|
| 59 |
-Delete a user repository with the given `namespace` and `repo_name`. |
|
| 60 |
- |
|
| 61 |
- **Example Request**: |
|
| 62 |
- |
|
| 63 |
- DELETE /v1/repositories/foo/bar/ HTTP/1.1 |
|
| 64 |
- Host: index.docker.io |
|
| 65 |
- Accept: application/json |
|
| 66 |
- Content-Type: application/json |
|
| 67 |
- Authorization: Basic akmklmasadalkm== |
|
| 68 |
- X-Docker-Token: true |
|
| 69 |
- |
|
| 70 |
- "" |
|
| 71 |
- |
|
| 72 |
- Parameters: |
|
| 73 |
- |
|
| 74 |
- - **namespace** – the namespace for the repo |
|
| 75 |
- - **repo_name** – the name for the repo |
|
| 76 |
- |
|
| 77 |
- **Example Response**: |
|
| 78 |
- |
|
| 79 |
- HTTP/1.1 202 |
|
| 80 |
- Vary: Accept |
|
| 81 |
- Content-Type: application/json |
|
| 82 |
- WWW-Authenticate: Token signature=123abc,repository="foo/bar",access=delete |
|
| 83 |
- X-Docker-Token: signature=123abc,repository="foo/bar",access=delete |
|
| 84 |
- X-Docker-Endpoints: registry-1.docker.io [, registry-2.docker.io] |
|
| 85 |
- |
|
| 86 |
- "" |
|
| 87 |
- |
|
| 88 |
- Status Codes: |
|
| 89 |
- |
|
| 90 |
- - **200** – Deleted |
|
| 91 |
- - **202** – Accepted |
|
| 92 |
- - **400** – Errors (invalid json, missing or invalid fields, etc) |
|
| 93 |
- - **401** – Unauthorized |
|
| 94 |
- - **403** – Account is not Active |
|
| 95 |
- |
|
| 96 |
-#### Library Repo |
|
| 97 |
- |
|
| 98 |
-`PUT /v1/repositories/(repo_name)/` |
|
| 99 |
- |
|
| 100 |
-Create a library repository with the given `repo_name`. |
|
| 101 |
-This is a restricted feature only available to docker admins. |
|
| 102 |
- |
|
| 103 |
- When namespace is missing, it is assumed to be `library` |
|
| 104 |
- |
|
| 105 |
- |
|
| 106 |
- **Example Request**: |
|
| 107 |
- |
|
| 108 |
- PUT /v1/repositories/foobar/ HTTP/1.1 |
|
| 109 |
- Host: index.docker.io |
|
| 110 |
- Accept: application/json |
|
| 111 |
- Content-Type: application/json |
|
| 112 |
- Authorization: Basic akmklmasadalkm== |
|
| 113 |
- X-Docker-Token: true |
|
| 114 |
- |
|
| 115 |
- [{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f"}]
|
|
| 116 |
- |
|
| 117 |
- Parameters: |
|
| 118 |
- |
|
| 119 |
- - **repo_name** – the library name for the repo |
|
| 120 |
- |
|
| 121 |
- **Example Response**: |
|
| 122 |
- |
|
| 123 |
- HTTP/1.1 200 |
|
| 124 |
- Vary: Accept |
|
| 125 |
- Content-Type: application/json |
|
| 126 |
- WWW-Authenticate: Token signature=123abc,repository="library/foobar",access=write |
|
| 127 |
- X-Docker-Token: signature=123abc,repository="foo/bar",access=write |
|
| 128 |
- X-Docker-Endpoints: registry-1.docker.io [, registry-2.docker.io] |
|
| 129 |
- |
|
| 130 |
- "" |
|
| 131 |
- |
|
| 132 |
- Status Codes: |
|
| 133 |
- |
|
| 134 |
- - **200** – Created |
|
| 135 |
- - **400** – Errors (invalid json, missing or invalid fields, etc) |
|
| 136 |
- - **401** – Unauthorized |
|
| 137 |
- - **403** – Account is not Active |
|
| 138 |
- |
|
| 139 |
-`DELETE /v1/repositories/(repo_name)/` |
|
| 140 |
- |
|
| 141 |
-Delete a library repository with the given `repo_name`. |
|
| 142 |
-This is a restricted feature only available to docker admins. |
|
| 143 |
- |
|
| 144 |
- When namespace is missing, it is assumed to be `library` |
|
| 145 |
- |
|
| 146 |
- |
|
| 147 |
- **Example Request**: |
|
| 148 |
- |
|
| 149 |
- DELETE /v1/repositories/foobar/ HTTP/1.1 |
|
| 150 |
- Host: index.docker.io |
|
| 151 |
- Accept: application/json |
|
| 152 |
- Content-Type: application/json |
|
| 153 |
- Authorization: Basic akmklmasadalkm== |
|
| 154 |
- X-Docker-Token: true |
|
| 155 |
- |
|
| 156 |
- "" |
|
| 157 |
- |
|
| 158 |
- Parameters: |
|
| 159 |
- |
|
| 160 |
- - **repo_name** – the library name for the repo |
|
| 161 |
- |
|
| 162 |
- **Example Response**: |
|
| 163 |
- |
|
| 164 |
- HTTP/1.1 202 |
|
| 165 |
- Vary: Accept |
|
| 166 |
- Content-Type: application/json |
|
| 167 |
- WWW-Authenticate: Token signature=123abc,repository="library/foobar",access=delete |
|
| 168 |
- X-Docker-Token: signature=123abc,repository="foo/bar",access=delete |
|
| 169 |
- X-Docker-Endpoints: registry-1.docker.io [, registry-2.docker.io] |
|
| 170 |
- |
|
| 171 |
- "" |
|
| 172 |
- |
|
| 173 |
- Status Codes: |
|
| 174 |
- |
|
| 175 |
- - **200** – Deleted |
|
| 176 |
- - **202** – Accepted |
|
| 177 |
- - **400** – Errors (invalid json, missing or invalid fields, etc) |
|
| 178 |
- - **401** – Unauthorized |
|
| 179 |
- - **403** – Account is not Active |
|
| 180 |
- |
|
| 181 |
-### Repository Images |
|
| 182 |
- |
|
| 183 |
-#### User Repo Images |
|
| 184 |
- |
|
| 185 |
-`PUT /v1/repositories/(namespace)/(repo_name)/images` |
|
| 186 |
- |
|
| 187 |
-Update the images for a user repo. |
|
| 188 |
- |
|
| 189 |
- **Example Request**: |
|
| 190 |
- |
|
| 191 |
- PUT /v1/repositories/foo/bar/images HTTP/1.1 |
|
| 192 |
- Host: index.docker.io |
|
| 193 |
- Accept: application/json |
|
| 194 |
- Content-Type: application/json |
|
| 195 |
- Authorization: Basic akmklmasadalkm== |
|
| 196 |
- |
|
| 197 |
- [{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f",
|
|
| 198 |
- "checksum": "b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087"}] |
|
| 199 |
- |
|
| 200 |
- Parameters: |
|
| 201 |
- |
|
| 202 |
- - **namespace** – the namespace for the repo |
|
| 203 |
- - **repo_name** – the name for the repo |
|
| 204 |
- |
|
| 205 |
- **Example Response**: |
|
| 206 |
- |
|
| 207 |
- HTTP/1.1 204 |
|
| 208 |
- Vary: Accept |
|
| 209 |
- Content-Type: application/json |
|
| 210 |
- |
|
| 211 |
- "" |
|
| 212 |
- |
|
| 213 |
- Status Codes: |
|
| 214 |
- |
|
| 215 |
- - **204** – Created |
|
| 216 |
- - **400** – Errors (invalid json, missing or invalid fields, etc) |
|
| 217 |
- - **401** – Unauthorized |
|
| 218 |
- - **403** – Account is not Active or permission denied |
|
| 219 |
- |
|
| 220 |
-`GET /v1/repositories/(namespace)/(repo_name)/images` |
|
| 221 |
- |
|
| 222 |
-Get the images for a user repo. |
|
| 223 |
- |
|
| 224 |
- **Example Request**: |
|
| 225 |
- |
|
| 226 |
- GET /v1/repositories/foo/bar/images HTTP/1.1 |
|
| 227 |
- Host: index.docker.io |
|
| 228 |
- Accept: application/json |
|
| 229 |
- |
|
| 230 |
- Parameters: |
|
| 231 |
- |
|
| 232 |
- - **namespace** – the namespace for the repo |
|
| 233 |
- - **repo_name** – the name for the repo |
|
| 234 |
- |
|
| 235 |
- **Example Response**: |
|
| 236 |
- |
|
| 237 |
- HTTP/1.1 200 |
|
| 238 |
- Vary: Accept |
|
| 239 |
- Content-Type: application/json |
|
| 240 |
- |
|
| 241 |
- [{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f",
|
|
| 242 |
- "checksum": "b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087"}, |
|
| 243 |
- {"id": "ertwetewtwe38722009fe6857087b486531f9a779a0c1dfddgfgsdgdsgds",
|
|
| 244 |
- "checksum": "34t23f23fc17e3ed29dae8f12c4f9e89cc6f0bsdfgfsdgdsgdsgerwgew"}] |
|
| 245 |
- |
|
| 246 |
- Status Codes: |
|
| 247 |
- |
|
| 248 |
- - **200** – OK |
|
| 249 |
- - **404** – Not found |
|
| 250 |
- |
|
| 251 |
-#### Library Repo Images |
|
| 252 |
- |
|
| 253 |
-`PUT /v1/repositories/(repo_name)/images` |
|
| 254 |
- |
|
| 255 |
-Update the images for a library repo. |
|
| 256 |
- |
|
| 257 |
- **Example Request**: |
|
| 258 |
- |
|
| 259 |
- PUT /v1/repositories/foobar/images HTTP/1.1 |
|
| 260 |
- Host: index.docker.io |
|
| 261 |
- Accept: application/json |
|
| 262 |
- Content-Type: application/json |
|
| 263 |
- Authorization: Basic akmklmasadalkm== |
|
| 264 |
- |
|
| 265 |
- [{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f",
|
|
| 266 |
- "checksum": "b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087"}] |
|
| 267 |
- |
|
| 268 |
- Parameters: |
|
| 269 |
- |
|
| 270 |
- - **repo_name** – the library name for the repo |
|
| 271 |
- |
|
| 272 |
- **Example Response**: |
|
| 273 |
- |
|
| 274 |
- HTTP/1.1 204 |
|
| 275 |
- Vary: Accept |
|
| 276 |
- Content-Type: application/json |
|
| 277 |
- |
|
| 278 |
- "" |
|
| 279 |
- |
|
| 280 |
- Status Codes: |
|
| 281 |
- |
|
| 282 |
- - **204** – Created |
|
| 283 |
- - **400** – Errors (invalid json, missing or invalid fields, etc) |
|
| 284 |
- - **401** – Unauthorized |
|
| 285 |
- - **403** – Account is not Active or permission denied |
|
| 286 |
- |
|
| 287 |
-`GET /v1/repositories/(repo_name)/images` |
|
| 288 |
- |
|
| 289 |
-Get the images for a library repo. |
|
| 290 |
- |
|
| 291 |
- **Example Request**: |
|
| 292 |
- |
|
| 293 |
- GET /v1/repositories/foobar/images HTTP/1.1 |
|
| 294 |
- Host: index.docker.io |
|
| 295 |
- Accept: application/json |
|
| 296 |
- |
|
| 297 |
- Parameters: |
|
| 298 |
- |
|
| 299 |
- - **repo_name** – the library name for the repo |
|
| 300 |
- |
|
| 301 |
- **Example Response**: |
|
| 302 |
- |
|
| 303 |
- HTTP/1.1 200 |
|
| 304 |
- Vary: Accept |
|
| 305 |
- Content-Type: application/json |
|
| 306 |
- |
|
| 307 |
- [{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f",
|
|
| 308 |
- "checksum": "b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087"}, |
|
| 309 |
- {"id": "ertwetewtwe38722009fe6857087b486531f9a779a0c1dfddgfgsdgdsgds",
|
|
| 310 |
- "checksum": "34t23f23fc17e3ed29dae8f12c4f9e89cc6f0bsdfgfsdgdsgdsgerwgew"}] |
|
| 311 |
- |
|
| 312 |
- Status Codes: |
|
| 313 |
- |
|
| 314 |
- - **200** – OK |
|
| 315 |
- - **404** – Not found |
|
| 316 |
- |
|
| 317 |
-### Repository Authorization |
|
| 318 |
- |
|
| 319 |
-#### Library Repo |
|
| 320 |
- |
|
| 321 |
-`PUT /v1/repositories/(repo_name)/auth` |
|
| 322 |
- |
|
| 323 |
-Authorize a token for a library repo |
|
| 324 |
- |
|
| 325 |
- **Example Request**: |
|
| 326 |
- |
|
| 327 |
- PUT /v1/repositories/foobar/auth HTTP/1.1 |
|
| 328 |
- Host: index.docker.io |
|
| 329 |
- Accept: application/json |
|
| 330 |
- Authorization: Token signature=123abc,repository="library/foobar",access=write |
|
| 331 |
- |
|
| 332 |
- Parameters: |
|
| 333 |
- |
|
| 334 |
- - **repo_name** – the library name for the repo |
|
| 335 |
- |
|
| 336 |
- **Example Response**: |
|
| 337 |
- |
|
| 338 |
- HTTP/1.1 200 |
|
| 339 |
- Vary: Accept |
|
| 340 |
- Content-Type: application/json |
|
| 341 |
- |
|
| 342 |
- "OK" |
|
| 343 |
- |
|
| 344 |
- Status Codes: |
|
| 345 |
- |
|
| 346 |
- - **200** – OK |
|
| 347 |
- - **403** – Permission denied |
|
| 348 |
- - **404** – Not found |
|
| 349 |
- |
|
| 350 |
-#### User Repo |
|
| 351 |
- |
|
| 352 |
-`PUT /v1/repositories/(namespace)/(repo_name)/auth` |
|
| 353 |
- |
|
| 354 |
-Authorize a token for a user repo |
|
| 355 |
- |
|
| 356 |
- **Example Request**: |
|
| 357 |
- |
|
| 358 |
- PUT /v1/repositories/foo/bar/auth HTTP/1.1 |
|
| 359 |
- Host: index.docker.io |
|
| 360 |
- Accept: application/json |
|
| 361 |
- Authorization: Token signature=123abc,repository="foo/bar",access=write |
|
| 362 |
- |
|
| 363 |
- Parameters: |
|
| 364 |
- |
|
| 365 |
- - **namespace** – the namespace for the repo |
|
| 366 |
- - **repo_name** – the name for the repo |
|
| 367 |
- |
|
| 368 |
- **Example Response**: |
|
| 369 |
- |
|
| 370 |
- HTTP/1.1 200 |
|
| 371 |
- Vary: Accept |
|
| 372 |
- Content-Type: application/json |
|
| 373 |
- |
|
| 374 |
- "OK" |
|
| 375 |
- |
|
| 376 |
- Status Codes: |
|
| 377 |
- |
|
| 378 |
- - **200** – OK |
|
| 379 |
- - **403** – Permission denied |
|
| 380 |
- - **404** – Not found |
|
| 381 |
- |
|
| 382 |
-### Users |
|
| 383 |
- |
|
| 384 |
-#### User Login |
|
| 385 |
- |
|
| 386 |
-`GET /v1/users` |
|
| 387 |
- |
|
| 388 |
-If you want to check your login, you can try this endpoint |
|
| 389 |
- |
|
| 390 |
- **Example Request**: |
|
| 391 |
- |
|
| 392 |
- GET /v1/users HTTP/1.1 |
|
| 393 |
- Host: index.docker.io |
|
| 394 |
- Accept: application/json |
|
| 395 |
- Authorization: Basic akmklmasadalkm== |
|
| 396 |
- |
|
| 397 |
- **Example Response**: |
|
| 398 |
- |
|
| 399 |
- HTTP/1.1 200 OK |
|
| 400 |
- Vary: Accept |
|
| 401 |
- Content-Type: application/json |
|
| 402 |
- |
|
| 403 |
- OK |
|
| 404 |
- |
|
| 405 |
- Status Codes: |
|
| 406 |
- |
|
| 407 |
- - **200** – no error |
|
| 408 |
- - **401** – Unauthorized |
|
| 409 |
- - **403** – Account is not Active |
|
| 410 |
- |
|
| 411 |
-#### User Register |
|
| 412 |
- |
|
| 413 |
-`POST /v1/users` |
|
| 414 |
- |
|
| 415 |
-Registering a new account. |
|
| 416 |
- |
|
| 417 |
- **Example request**: |
|
| 418 |
- |
|
| 419 |
- POST /v1/users HTTP/1.1 |
|
| 420 |
- Host: index.docker.io |
|
| 421 |
- Accept: application/json |
|
| 422 |
- Content-Type: application/json |
|
| 423 |
- |
|
| 424 |
- {"email": "sam@dotcloud.com",
|
|
| 425 |
- "password": "toto42", |
|
| 426 |
- "username": "foobar"} |
|
| 427 |
- |
|
| 428 |
- Json Parameters: |
|
| 429 |
- |
|
| 430 |
- Â |
|
| 431 |
- |
|
| 432 |
- - **email** – valid email address, that needs to be confirmed |
|
| 433 |
- - **username** – min 4 character, max 30 characters, must match |
|
| 434 |
- the regular expression [a-z0-9_]. |
|
| 435 |
- - **password** – min 5 characters |
|
| 436 |
- |
|
| 437 |
- **Example Response**: |
|
| 438 |
- |
|
| 439 |
- HTTP/1.1 201 OK |
|
| 440 |
- Vary: Accept |
|
| 441 |
- Content-Type: application/json |
|
| 442 |
- |
|
| 443 |
- "User Created" |
|
| 444 |
- |
|
| 445 |
- Status Codes: |
|
| 446 |
- |
|
| 447 |
- - **201** – User Created |
|
| 448 |
- - **400** – Errors (invalid json, missing or invalid fields, etc) |
|
| 449 |
- |
|
| 450 |
-#### Update User |
|
| 451 |
- |
|
| 452 |
-`PUT /v1/users/(username)/` |
|
| 453 |
- |
|
| 454 |
-Change a password or email address for given user. If you pass in an |
|
| 455 |
- |
|
| 456 |
- email, it will add it to your account, it will not remove the old |
|
| 457 |
- one. Passwords will be updated. |
|
| 458 |
- |
|
| 459 |
- It is up to the client to verify that that password that is sent is |
|
| 460 |
- the one that they want. Common approach is to have them type it |
|
| 461 |
- twice. |
|
| 462 |
- |
|
| 463 |
- **Example Request**: |
|
| 464 |
- |
|
| 465 |
- PUT /v1/users/fakeuser/ HTTP/1.1 |
|
| 466 |
- Host: index.docker.io |
|
| 467 |
- Accept: application/json |
|
| 468 |
- Content-Type: application/json |
|
| 469 |
- Authorization: Basic akmklmasadalkm== |
|
| 470 |
- |
|
| 471 |
- {"email": "sam@dotcloud.com",
|
|
| 472 |
- "password": "toto42"} |
|
| 473 |
- |
|
| 474 |
- Parameters: |
|
| 475 |
- |
|
| 476 |
- - **username** – username for the person you want to update |
|
| 477 |
- |
|
| 478 |
- **Example Response**: |
|
| 479 |
- |
|
| 480 |
- HTTP/1.1 204 |
|
| 481 |
- Vary: Accept |
|
| 482 |
- Content-Type: application/json |
|
| 483 |
- |
|
| 484 |
- "" |
|
| 485 |
- |
|
| 486 |
- Status Codes: |
|
| 487 |
- |
|
| 488 |
- - **204** – User Updated |
|
| 489 |
- - **400** – Errors (invalid json, missing or invalid fields, etc) |
|
| 490 |
- - **401** – Unauthorized |
|
| 491 |
- - **403** – Account is not Active |
|
| 492 |
- - **404** – User not found |
|
| 493 |
- |
|
| 494 |
-## Search |
|
| 495 |
- |
|
| 496 |
-If you need to search the index, this is the endpoint you would use. |
|
| 497 |
- |
|
| 498 |
-### Search |
|
| 499 |
- |
|
| 500 |
-`GET /v1/search` |
|
| 501 |
- |
|
| 502 |
-Search the Index given a search term. It accepts |
|
| 503 |
- |
|
| 504 |
- [GET](http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3) |
|
| 505 |
- only. |
|
| 506 |
- |
|
| 507 |
- **Example request**: |
|
| 508 |
- |
|
| 509 |
- GET /v1/search?q=search_term HTTP/1.1 |
|
| 510 |
- Host: example.com |
|
| 511 |
- Accept: application/json |
|
| 512 |
- |
|
| 513 |
- **Example response**: |
|
| 514 |
- |
|
| 515 |
- HTTP/1.1 200 OK |
|
| 516 |
- Vary: Accept |
|
| 517 |
- Content-Type: application/json |
|
| 518 |
- |
|
| 519 |
- {"query":"search_term",
|
|
| 520 |
- "num_results": 3, |
|
| 521 |
- "results" : [ |
|
| 522 |
- {"name": "ubuntu", "description": "An ubuntu image..."},
|
|
| 523 |
- {"name": "centos", "description": "A centos image..."},
|
|
| 524 |
- {"name": "fedora", "description": "A fedora image..."}
|
|
| 525 |
- ] |
|
| 526 |
- } |
|
| 527 |
- |
|
| 528 |
- Query Parameters: |
|
| 529 |
- |
|
| 530 |
- - **q** – what you want to search for |
|
| 531 |
- |
|
| 532 |
- Status Codes: |
|
| 533 |
- |
|
| 534 |
- - **200** – no error |
|
| 535 |
- - **500** – server error |
| ... | ... |
@@ -694,10 +694,10 @@ Pull an image or a repository from the registry |
| 694 | 694 |
Usage: docker pull NAME[:TAG] |
| 695 | 695 |
|
| 696 | 696 |
Most of your images will be created on top of a base image from the |
| 697 |
-Docker Index ([https://index.docker.io](https://index.docker.io)). |
|
| 697 |
+[Docker.io](https://index.docker.io) registry. |
|
| 698 | 698 |
|
| 699 |
-The Docker Index contains many pre-built images that you can |
|
| 700 |
-`pull` and try without needing to define and configure your own. |
|
| 699 |
+[Docker.io](https://index.docker.io) contains many pre-built images that you |
|
| 700 |
+can `pull` and try without needing to define and configure your own. |
|
| 701 | 701 |
|
| 702 | 702 |
To download a particular image, or set of images (i.e., a repository), |
| 703 | 703 |
use `docker pull`: |
| ... | ... |
@@ -1067,7 +1067,7 @@ It is used to create a backup that can then be used with |
| 1067 | 1067 |
|
| 1068 | 1068 |
## search |
| 1069 | 1069 |
|
| 1070 |
-Search the docker index for images |
|
| 1070 |
+Search [Docker.io](https://index.docker.io) for images |
|
| 1071 | 1071 |
|
| 1072 | 1072 |
Usage: docker search TERM |
| 1073 | 1073 |
|
| ... | ... |
@@ -1075,8 +1075,8 @@ Search the docker index for images |
| 1075 | 1075 |
-s, --stars=0: Only displays with at least xxx stars |
| 1076 | 1076 |
-t, --trusted=false: Only show trusted builds |
| 1077 | 1077 |
|
| 1078 |
-See [*Find Public Images on the Central Index*]( |
|
| 1079 |
-/use/workingwithrepository/#searching-central-index) for |
|
| 1078 |
+See [*Find Public Images on Docker.io*]( |
|
| 1079 |
+/use/workingwithrepository/#find-public-images-on-dockerio) for |
|
| 1080 | 1080 |
more details on finding shared images from the commandline. |
| 1081 | 1081 |
|
| 1082 | 1082 |
## start |
| ... | ... |
@@ -1,6 +1,6 @@ |
| 1 | 1 |
page_title: Registry |
| 2 | 2 |
page_description: Definition of an Registry |
| 3 |
-page_keywords: containers, lxc, concepts, explanation, image, repository, container |
|
| 3 |
+page_keywords: containers, concepts, explanation, image, repository, container |
|
| 4 | 4 |
|
| 5 | 5 |
# Registry |
| 6 | 6 |
|
| ... | ... |
@@ -11,7 +11,7 @@ A Registry is a hosted service containing [*repositories*]( |
| 11 | 11 |
responds to the Registry API. |
| 12 | 12 |
|
| 13 | 13 |
The default registry can be accessed using a browser at |
| 14 |
-[http://images.docker.io](http://images.docker.io) or using the |
|
| 14 |
+[Docker.io](http://index.docker.io) or using the |
|
| 15 | 15 |
`sudo docker search` command. |
| 16 | 16 |
|
| 17 | 17 |
## Further Reading |
| ... | ... |
@@ -25,9 +25,9 @@ for installation instructions. |
| 25 | 25 |
# Download an ubuntu image |
| 26 | 26 |
sudo docker pull ubuntu |
| 27 | 27 |
|
| 28 |
-This will find the `ubuntu` image by name in the |
|
| 29 |
-[*Central Index*](../workingwithrepository/#searching-central-index) and |
|
| 30 |
-download it from the top-level Central Repository to a local image |
|
| 28 |
+This will find the `ubuntu` image by name on |
|
| 29 |
+[*Docker.io*](../workingwithrepository/#find-public-images-on-dockerio) and |
|
| 30 |
+download it from [Docker.io](https://index.docker.io) to a local image |
|
| 31 | 31 |
cache. |
| 32 | 32 |
|
| 33 | 33 |
> **Note**: |
| ... | ... |
@@ -6,33 +6,35 @@ page_keywords: repo, repositories, usage, pull image, push image, image, documen |
| 6 | 6 |
|
| 7 | 7 |
## Introduction |
| 8 | 8 |
|
| 9 |
-A *repository* is a shareable collection of tagged |
|
| 9 |
+Docker is not only a tool for creating and managing your own |
|
| 10 |
+[*containers*](/terms/container/#container-def) – **Docker is also a |
|
| 11 |
+tool for sharing**. A *repository* is a shareable collection of tagged |
|
| 10 | 12 |
[*images*](/terms/image/#image-def) that together create the file |
| 11 | 13 |
systems for containers. The repository's name is a label that indicates |
| 12 | 14 |
the provenance of the repository, i.e. who created it and where the |
| 13 | 15 |
original copy is located. |
| 14 | 16 |
|
| 15 |
-You can find one or more repositories hosted on a *registry*. There can |
|
| 16 |
-be an implicit or explicit host name as part of the repository tag. The |
|
| 17 |
-implicit registry is located at `index.docker.io`, |
|
| 18 |
-the home of "top-level" repositories and the Central Index. This |
|
| 19 |
-registry may also include public "user" repositories. |
|
| 17 |
+You can find one or more repositories hosted on a *registry*. There are |
|
| 18 |
+two types of *registry*: public and private. There's also a default |
|
| 19 |
+*registry* that Docker uses which is called |
|
| 20 |
+[Docker.io](http://index.docker.io). |
|
| 21 |
+[Docker.io](http://index.docker.io) is the home of |
|
| 22 |
+"top-level" repositories and public "user" repositories. The Docker |
|
| 23 |
+project provides [Docker.io](http://index.docker.io) to host public and |
|
| 24 |
+[private repositories](https://index.docker.io/plans/), namespaced by |
|
| 25 |
+user. We provide user authentication and search over all the public |
|
| 26 |
+repositories. |
|
| 20 | 27 |
|
| 21 |
-Docker is not only a tool for creating and managing your own |
|
| 22 |
-[*containers*](/terms/container/#container-def) – **Docker is also |
|
| 23 |
-a tool for sharing**. The Docker project provides a Central Registry to |
|
| 24 |
-host public repositories, namespaced by user, and a Central Index which |
|
| 25 |
-provides user authentication and search over all the public |
|
| 26 |
-repositories. You can host your own Registry too! Docker acts as a |
|
| 27 |
-client for these services via `docker search, pull, login` |
|
| 28 |
-and `push`. |
|
| 28 |
+Docker acts as a client for these services via the `docker search, pull, |
|
| 29 |
+login` and `push` commands. |
|
| 29 | 30 |
|
| 30 | 31 |
## Repositories |
| 31 | 32 |
|
| 32 | 33 |
### Local Repositories |
| 33 | 34 |
|
| 34 | 35 |
Docker images which have been created and labeled on your local Docker |
| 35 |
-server need to be pushed to a Public or Private registry to be shared. |
|
| 36 |
+server need to be pushed to a Public (by default they are pushed to |
|
| 37 |
+[Docker.io](http://index.docker.io)) or Private registry to be shared. |
|
| 36 | 38 |
|
| 37 | 39 |
### Public Repositories |
| 38 | 40 |
|
| ... | ... |
@@ -41,22 +43,29 @@ which are controlled by the Docker team, and *user* repositories created |
| 41 | 41 |
by individual contributors. Anyone can read from these repositories – |
| 42 | 42 |
they really help people get started quickly! You could also use |
| 43 | 43 |
[*Trusted Builds*](#trusted-builds) if you need to keep |
| 44 |
-control of who accesses your images, but we will only refer to public |
|
| 45 |
-repositories in these examples. |
|
| 44 |
+control of who accesses your images. |
|
| 46 | 45 |
|
| 47 | 46 |
- Top-level repositories can easily be recognized by **not** having a |
| 48 |
- `/` (slash) in their name. These repositories can generally be trusted. |
|
| 47 |
+ `/` (slash) in their name. These repositories represent trusted images |
|
| 48 |
+ provided by the Docker team. |
|
| 49 | 49 |
- User repositories always come in the form of `<username>/<repo_name>`. |
| 50 |
- This is what your published images will look like if you push to the public |
|
| 51 |
- Central Registry. |
|
| 52 |
-- Only the authenticated user can push to their *username* namespace |
|
| 53 |
- on the Central Registry. |
|
| 54 |
-- User images are not checked, it is therefore up to you whether or not you |
|
| 55 |
- trust the creator of this image. |
|
| 50 |
+ This is what your published images will look like if you push to the |
|
| 51 |
+ public [Docker.io](http://index.docker.io) registry. |
|
| 52 |
+- Only the authenticated user can push to their *username* namespace on |
|
| 53 |
+ a [Docker.io](http://index.docker.io) repository. |
|
| 54 |
+- User images are not curated, it is therefore up to you whether or not |
|
| 55 |
+ you trust the creator of this image. |
|
| 56 |
+ |
|
| 57 |
+### Private repositories |
|
| 58 |
+ |
|
| 59 |
+You can also create private repositories on |
|
| 60 |
+[Docker.io](https://index.docker.io/plans/). These allow you to store |
|
| 61 |
+images that you don't want to share publicly. Only authenticated users |
|
| 62 |
+can push to private repositories. |
|
| 56 | 63 |
|
| 57 |
-## Find Public Images on the Central Index |
|
| 64 |
+## Find Public Images on Docker.io |
|
| 58 | 65 |
|
| 59 |
-You can search the Central Index [online](https://index.docker.io) or |
|
| 66 |
+You can search the [Docker.io](https://index.docker.io) registry or |
|
| 60 | 67 |
using the command line interface. Searching can find images by name, |
| 61 | 68 |
user name or description: |
| 62 | 69 |
|
| ... | ... |
@@ -78,7 +87,7 @@ There you can see two example results: `centos` and |
| 78 | 78 |
shows that it comes from the public repository of a user, |
| 79 | 79 |
`slantview/`, while the first result |
| 80 | 80 |
(`centos`) doesn't explicitly list a repository so |
| 81 |
-it comes from the trusted Central Repository. The `/` |
|
| 81 |
+it comes from the trusted top-level namespace. The `/` |
|
| 82 | 82 |
character separates a user's repository and the image name. |
| 83 | 83 |
|
| 84 | 84 |
Once you have found the image name, you can download it: |
| ... | ... |
@@ -92,13 +101,13 @@ What can you do with that image? Check out the |
| 92 | 92 |
[*Examples*](/examples/#example-list) and, when you're ready with |
| 93 | 93 |
your own image, come back here to learn how to share it. |
| 94 | 94 |
|
| 95 |
-## Contributing to the Central Registry |
|
| 95 |
+## Contributing to Docker.io |
|
| 96 | 96 |
|
| 97 |
-Anyone can pull public images from the Central Registry, but if you |
|
| 98 |
-would like to share one of your own images, then you must register a |
|
| 99 |
-unique user name first. You can create your username and login on the |
|
| 100 |
-[central Docker Index online](https://index.docker.io/account/signup/), |
|
| 101 |
-or by running |
|
| 97 |
+Anyone can pull public images from the |
|
| 98 |
+[Docker.io](http://index.docker.io) registry, but if you would like to |
|
| 99 |
+share one of your own images, then you must register a unique user name |
|
| 100 |
+first. You can create your username and login on |
|
| 101 |
+[Docker.io](https://index.docker.io/account/signup/), or by running |
|
| 102 | 102 |
|
| 103 | 103 |
sudo docker login |
| 104 | 104 |
|
| ... | ... |
@@ -110,15 +119,19 @@ also prompt you to enter a password and your e-mail address. It will |
| 110 | 110 |
then automatically log you in. Now you're ready to commit and push your |
| 111 | 111 |
own images! |
| 112 | 112 |
|
| 113 |
+> **Note:** |
|
| 114 |
+> Your authentication credentials will be stored in the [`.dockercfg` |
|
| 115 |
+> authentication file](#authentication-file). |
|
| 116 |
+ |
|
| 113 | 117 |
## Committing a Container to a Named Image |
| 114 | 118 |
|
| 115 | 119 |
When you make changes to an existing image, those changes get saved to a |
| 116 | 120 |
container's file system. You can then promote that container to become |
| 117 |
-an image by making a `commit`. In addition to |
|
| 118 |
-converting the container to an image, this is also your opportunity to |
|
| 119 |
-name the image, specifically a name that includes your user name from |
|
| 120 |
-the Central Docker Index (as you did a `login` |
|
| 121 |
-above) and a meaningful name for the image. |
|
| 121 |
+an image by making a `commit`. In addition to converting the container |
|
| 122 |
+to an image, this is also your opportunity to name the image, |
|
| 123 |
+specifically a name that includes your user name from |
|
| 124 |
+[Docker.io](http://index.docker.io) (as you did a `login` above) and a |
|
| 125 |
+meaningful name for the image. |
|
| 122 | 126 |
|
| 123 | 127 |
# format is "sudo docker commit <container_id> <username>/<imagename>" |
| 124 | 128 |
$ sudo docker commit $CONTAINER_ID myname/kickassapp |
| ... | ... |
@@ -143,7 +156,7 @@ when you push a commit. |
| 143 | 143 |
|
| 144 | 144 |
### To setup a trusted build |
| 145 | 145 |
|
| 146 |
-1. Create a [Docker Index account](https://index.docker.io/) and login. |
|
| 146 |
+1. Create a [Docker.io account](https://index.docker.io/) and login. |
|
| 147 | 147 |
2. Link your GitHub account through the `Link Accounts` menu. |
| 148 | 148 |
3. [Configure a Trusted build](https://index.docker.io/builds/). |
| 149 | 149 |
4. Pick a GitHub project that has a `Dockerfile` that you want to build. |
| ... | ... |
@@ -154,8 +167,9 @@ when you push a commit. |
| 154 | 154 |
|
| 155 | 155 |
Once the Trusted Build is configured it will automatically trigger a |
| 156 | 156 |
build, and in a few minutes, if there are no errors, you will see your |
| 157 |
-new trusted build on the Docker Index. It will will stay in sync with |
|
| 158 |
-your GitHub repo until you deactivate the Trusted Build. |
|
| 157 |
+new trusted build on the [Docker.io](https://index.docker.io) Registry. |
|
| 158 |
+It will will stay in sync with your GitHub repo until you deactivate the |
|
| 159 |
+Trusted Build. |
|
| 159 | 160 |
|
| 160 | 161 |
If you want to see the status of your Trusted Builds you can go to your |
| 161 | 162 |
[Trusted Builds page](https://index.docker.io/builds/) on the Docker |
| ... | ... |
@@ -167,15 +181,20 @@ cannot however push to a Trusted Build with the `docker push` command. |
| 167 | 167 |
You can only manage it by committing code to your GitHub repository. |
| 168 | 168 |
|
| 169 | 169 |
You can create multiple Trusted Builds per repository and configure them |
| 170 |
-to point to specific Dockerfile's or Git branches. |
|
| 170 |
+to point to specific `Dockerfile`'s or Git branches. |
|
| 171 | 171 |
|
| 172 | 172 |
## Private Registry |
| 173 | 173 |
|
| 174 |
-Private registries and private shared repositories are only possible by |
|
| 175 |
-hosting [your own registry](https://github.com/dotcloud/docker-registry). |
|
| 176 |
-To push or pull to a repository on your own registry, you must prefix the |
|
| 177 |
-tag with the address of the registry's host (a `.` or `:` is used to identify |
|
| 178 |
-a host), like this: |
|
| 174 |
+Private registries are possible by hosting [your own |
|
| 175 |
+registry](https://github.com/dotcloud/docker-registry). |
|
| 176 |
+ |
|
| 177 |
+> **Note**: |
|
| 178 |
+> You can also use private repositories on |
|
| 179 |
+> [Docker.io](https://index.docker.io/plans/). |
|
| 180 |
+ |
|
| 181 |
+To push or pull to a repository on your own registry, you must prefix |
|
| 182 |
+the tag with the address of the registry's host (a `.` or `:` is used to |
|
| 183 |
+identify a host), like this: |
|
| 179 | 184 |
|
| 180 | 185 |
# Tag to create a repository with the full registry location. |
| 181 | 186 |
# The location (e.g. localhost.localdomain:5000) becomes |
| ... | ... |
@@ -187,9 +206,9 @@ a host), like this: |
| 187 | 187 |
|
| 188 | 188 |
Once a repository has your registry's host name as part of the tag, you |
| 189 | 189 |
can push and pull it like any other repository, but it will **not** be |
| 190 |
-searchable (or indexed at all) in the Central Index, and there will be |
|
| 190 |
+searchable (or indexed at all) on [Docker.io](http://index.docker.io), and there will be |
|
| 191 | 191 |
no user name checking performed. Your registry will function completely |
| 192 |
-independently from the Central Index. |
|
| 192 |
+independently from the [Docker.io](http://index.docker.io) registry. |
|
| 193 | 193 |
|
| 194 | 194 |
<iframe width="640" height="360" src="//www.youtube.com/embed/CAewZCBT4PI?rel=0" frameborder="0" allowfullscreen></iframe> |
| 195 | 195 |
|