我做了一个私人注册表,curl xx.xx.xx.xx:5000还可以。我通过执行以下操作将映像推送到docker私有注册表中:
docker push xx.xx.xx.xx:5000/centos
返回:
http://xx.xx.xx.xx:5000/v1/repositories/centos/tags/latest
问题是如何从注册表网站或命令中获取所有图像。我无法从Docker Registry API找到任何信息。有人帮忙吗?:)
Answers:
从私有注册表v 0.7.0开始,您可以执行以下操作:
$ curl -X GET http://localhost:5000/v1/search?q=postgresql
然后您将获得一个json负载:
{"num_results": 1, "query": "postgresql", "results": [{"description": "", "name": "library/postgresql"}]}
提供更多背景信息,这是我启动注册表的方式:
docker run \
-e SETTINGS_FLAVOR=local \
-e STORAGE_PATH=/registry \
-e SEARCH_BACKEND=sqlalchemy \
-e LOGLEVEL=DEBUG \
-p 5000:5000 \
registry
search
curl -X GET http://localhost:5000/v1/search
可以列出所有图像
http://localhost:5000/v2/_catalog
docs.docker.com/registry/spec/api
现在,从Docker客户端,您可以直接直接搜索您的私有注册表,而无需使用HTTP API或任何其他工具:
例如搜索centos图像:
docker search localhost:5000/centos
所以我知道这是一个快速变化的领域,但是(截至2015-09-08)我在Docker Registry HTTP API V2中发现了以下内容:
GET /v2/_catalog
GET /v2/<name>/tags/list
基于此,以下内容对我在本地注册表上起作用(注册表:2 IMAGE ID 1e847b14150e365a95d76a9cc6b71cd67ca89905e3a0400fa44381ecf00890e1创建于2015-08-25T07:55:17.072):
$ curl -X GET http://localhost:5000/v2/_catalog
{"repositories":["ubuntu"]}
$ curl -X GET http://localhost:5000/v2/ubuntu/tags/list
{"name":"ubuntu","tags":["latest"]}
只需搜索“库”,就可以在我的私有注册表中获取所有内容:
docker search [my.registry.host]:[port]/library
退货(例如):
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
library/custom-image 0
library/another-image 0
library/hello-world 0
Error response from daemon: Unexpected status code 404
,出现了什么问题?
curl --insecure -u "test:password" https://myregistrydomain.com:5000/v2/_catalog
我安装了atc- / docker-registry-web项目,该项目为我提供UI并搜索我的私有注册表。 https://github.com/atc-/docker-registry-web
它已被docker化,您可以通过以下方式运行它
码头工人运行-p 8080:8080 -e REG1 = http://registry_host.name:5000 / v1 / atcol / docker-registry-ui
并通过浏览查看内容 registry_ui_host.name:8080
当前AFAIK没有简单的方法可以执行此操作,因为此信息应按私有注册表没有的索引存储。但是根据您启动注册表的方式,您有两种选择:
docker diff <id_of_registry_container>
使用该命令,您应该获取有关容器fs更改的信息。所有推送的图像应位于/ tmp / registry / repositories /如果您使用“ centos”作为名称,则它应该位于/ tmp / registry / repositories / library / centos中。该文件夹将包含描述图像结构的文本文件。实际数据在/ tmp / registry / images /中。
/v1/search
注册表中有api方法,但它需要索引后端。私有注册表代码(github.com/dotcloud/docker-registry/blob/master/docker_registry/…)中有基本的索引实现,但仅在独立模式下提供基本功能。几天前,我发现了这个问题:github.com/ekristen/docker-index但没有时间进行测试。
修改@mre的答案以仅从一个命令获取列表(至少对Docker Registry v2有效)。
docker exec -it <your_registry_container_id> ls -a /var/lib/registry/docker/registry/v2/repositories/