任何API或Web UI项目来pipe理Docker私人registry?

我无法find如何pipe理私人registry中的图像。 我可以推或拉图像,因为我知道id,但如何获得推送的图像列表?

以一个想要在他的组织的私人registry下看到可用图像的人为例。 她怎么办?

除非我弄错了,否则我找不到API或Web UI来发现registry内容,如index.docker.io与公共registry一起使用。

有没有开源项目来pipe理这个?

谢谢。

有没有开源项目来pipe理这个?

有一个集装箱化的Web应用程序,提供一对多的私人注册pipe理。 它的名字是Docker Registry UI,它是FOSS。

源代码在Github上 ,你可以像这样在容器中运行它:

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

免责声明:我写了networking应用程序,因为我自己找不到一个。 我相信这回答你的问题(如引用)。

谢谢托马斯!

要允许使用searchAPI,必须通过指定环境variablesSEARCH_BACKEND的值来启动容器,如下所示:

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

然后我有这个查询的结果:

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

要列出所有图像,您可以这样做:

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

要知道图像的可用版本:

 GET http://localhost:5000/v1/repositories/**test/base-img**/tags Result : { "0.1": "04e073e1efd31f50011dcde9b9f4d3148ecc4da94c0b7ba9abfadef5a8522d13", "0.2": "04e073e1efd31f50011dcde9b9f4d3148ecc4da94c0b7ba9abfadef5a8522d13", "0.3": "04e073e1efd31f50011dcde9b9f4d3148ecc4da94c0b7ba9abfadef5a8522d13" } 

我写了一个docker-registry-frontend ,你可以在github上find。 它允许您浏览您的私人registry,并通过DockerregistryAPI v1执行几乎所有可用的操作。 另外,它可以作为自己的docker容器运行。

这里有一些基本function的一些截图: https : //github.com/kwk/docker-registry-frontend/wiki/Features 。 除了这些function外,还支持SSLencryption和Kerberos身份validation。

我想为您呈现,我的私人注册前端 ,您可以尝试从github或dockerhub。 你也可以在那里find界面截图。

总结起来有:
– 内部数据库(BoltBD)赋予它存储信息的能力,因此它的响应速度要快得多,然后在其他项目中直接调用api
– 应用程序可以从registry中分析,存储和显示信息,例如:
– 图像层信息:
– 名称标签
– 图像大小和推送号码
– 上传和推送date
– 图像创build命令的历史
– 如果您有多个注册pipe理机构并在一个地方观察,可以设置多个存储库
– 显示统计数据,绘制曲线上传数量和标签的图像大小尊重date


更新2017-02-15
到目前为止,还增加了:

  • find一位家长
  • 显示父母的树形图
  • 图像删除
  • 不记名令牌authentication支持

就我所见,Dockerregistry具有一个REST API,与Docker本身非常相似。 您可以在http://docs.docker.io/reference/api/registry_api/find文档。 但乍一看,我没有看到一个方法列出所有的图像。

还有一个官方索引的REST API( http://docs.docker.io/reference/api/docker-io_api/上的资讯 )。

编辑

我刚刚testing了DockerregistryAPI,它不是那么自明的。 您可以查询某个存储库的所有图像。 就我而言,我的仓库被称为“thomas / busybox”。 我可以通过调用查询所有图像:

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

现在我知道我有四个图像在我的存储库,我可以查询每个图像。 对第一个图像的查询将是:

 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 } 

您也可以search图片,但是我没有得到任何结果:

 https://my-private-registry.com/v1/search?q=thomas Result: {"num_results": 0, "query": "thomas", "results": []} 

Sonatype Nexus Repository Manager 3.0拥有Docker的私有registry