Any project of an API or web interface for managing a private docker registry?

I can not find how to manage images in a private registry. I can click or pull out the image because I know the identifier, but how to get a list of clicked images?

Take, for example, someone who wants to see available images in their organization’s private registry. How can she do this?

If I am mistaken, I cannot find an API or web interface to detect the contents of the registry, such as index.docker.io, using the public registry.

Are there any open source projects to manage this?

thank.

+29
docker docker-registry
May 16 '14 at 16:03
source share
6 answers

Thanks to Thomas!

To enable the use of the search API, you must start the container by specifying the value of the environment variable SEARCH_BACKEND as follows:

docker run -d -e SEARCH_BACKEND=sqlalchemy -p 5000:5000 --name registry samalba/docker-registry 

Then I have the result for this query:

 GET http://registry_host:5000/v1/search?q=base Result : { "num_results": 1, "query": "base", "results": [{"description": "", "name": "test/base-img"}] } 

To list all the images, you can do this:

 GET http://registry_host:5000/v1/search Result : { "num_results": 2, "query": "", "results": [ {"description": "", "name": "test/base-img"}, {"description": "", "name": "test/base-test"}] } 

And know the available image versions:

 GET http://localhost:5000/v1/repositories/**test/base-img**/tags Result : { "0.1": "04e073e1efd31f50011dcde9b9f4d3148ecc4da94c0b7ba9abfadef5a8522d13", "0.2": "04e073e1efd31f50011dcde9b9f4d3148ecc4da94c0b7ba9abfadef5a8522d13", "0.3": "04e073e1efd31f50011dcde9b9f4d3148ecc4da94c0b7ba9abfadef5a8522d13" } 
+12
May 20 '14 at 12:57
source share

Are there any open source projects to manage this?

There is a web-based container application that administers individual one-to-many personal registries. His name is Docker Registry UI, and this is FOSS.

The source is on Github , and you can run it in the container as follows:

docker run -p 8080:8080 -v my_data_dir:/var/lib/h2/ atcol/docker-registry-ui

Disclaimer: I wrote a web application because I could not find it myself. I believe this answers your question (as indicated).

+15
Jun 22 '14 at 16:41
source share

I wrote docker-registry-frontend , which you can find on github. It allows you to view your private registry and do almost everything that is accessible through the Docker registry v1 API. In addition, it can run as a docker container on its own.

Here is a list of the main features with some screenshots: https://github.com/kwk/docker-registry-frontend/wiki/Features . In addition to these features, SSL encryption and Kerberos authentication are supported.

+11
Feb 04 '15 at 10:36
source share

I want to introduce you to my frontend for a private registry , you can try it from github or dockerhub. You can also find screenshots of the interface.

To summarize, he:
- internal db (BoltBD) gives him the ability to store information, and as a result, he reacts much faster than after a direct api call, as in other projects
- the application can process, store and display information from the registry, for example:
- information about image layers:
- name / tag
- image size and number of clicks
- download and set dates
- image creation history
- you can install multiple repositories if you have several registries and watch them in one place
- show statistics fairly, draw curves for the number of downloads and image sizes for the tag based on dates




Update 2017-02-15
So far, it has also been added:

  • find a parent
  • show parent tree
  • image deletion
  • Media Token Pointer Support
+3
Jun 20 '16 at 10:26
source share

As I understand it, there is a REST API in the Docker registry that is very similar to Docker itself. The documentation can be found at http://docs.docker.io/reference/api/registry_api/ . But at first glance I don’t see a method to simply list all the images.

There is also a REST API for the official index (information at http://docs.docker.io/reference/api/docker-io_api/ ).

EDIT

I just tested the Docker API, and this is not so clear. You can request all the images of a specific repository. In my case, my repository is called "thomas / busybox". I can request all the images there by calling:

 https://my-private-registry.com/v1/repositories/thomas/busybox/images Result: [ { "id": "2d8e5b282c81244037eb15b2068e1c46319c1a42b80493acb128da24b2090739" }, { "id": "6c991eb934609424f761d3d0a7c79f4f72b76db286aa02e617659ac116aa7758" }, { "id": "9f4e93171ec525221fa9013d0e21f8690cef68590664eb5249e0b324c5faf31a" }, { "id": "511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158" } ] 

Now I know that I have four images in my repository, and I can request each image. Request for the first image:

 https://my-private-registry.com/v1/images/2d8e5b282c81244037eb15b2068e1c46319c1a42b80493acb128da24b2090739/json Result: { "id": "2d8e5b282c81244037eb15b2068e1c46319c1a42b80493acb128da24b2090739", "parent": "9f4e93171ec525221fa9013d0e21f8690cef68590664eb5249e0b324c5faf31a", "created": "2014-04-24T15:59:59.47081913Z", "container": "d15320d6935ca35bc4198e373f29e730f4c53cce32b3809c2fecec22eb30018b", "container_config": { "Hostname": "4964db5b599b", ... "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "HOME=\/", "PATH=\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin" ], "Cmd": [ "\/bin\/sh", "-c", "#(nop) CMD [\/bin\/sh -c \/bin\/sh]" ], "Image": "9f4e93171ec525221fa9013d0e21f8690cef68590664eb5249e0b324c5faf31a", ... "OnBuild": [ ] }, "docker_version": "0.10.0", "author": "J\u00c3\u00a9r\u00c3\u00b4me Petazzoni <jerome@docker.com>", "config": { "Hostname": "4964db5b599b", "Domainname": "", "User": "", "Memory": 0, ... "Env": [ "HOME=\/", "PATH=\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin" ], "Cmd": [ "\/bin\/sh", "-c", "\/bin\/sh" ], "Image": "9f4e93171ec525221fa9013d0e21f8690cef68590664eb5249e0b324c5faf31a", ... "OnBuild": [ ] }, "architecture": "amd64", "os": "linux", "Size": 0 } 

You can also search for an image, but I am not getting any results:

 https://my-private-registry.com/v1/search?q=thomas Result: {"num_results": 0, "query": "thomas", "results": []} 
+1
May 17 '14 at 10:15
source share

Sonatype Nexus Repository Manager 3.0 has a private registry for dockers

0
Jun 08 '16 at 20:18
source share



All Articles