【发布时间】:2015-04-07 01:48:13
【问题描述】:
Docker Registry API 文档 (here) 声明您可以:
https://index.docker.io/v1/images/088b4505aa3adc3d35e79c031fa126b403200f02f51920fbd9b7c503e87c7a2c/ancestry
但是这(我尝试了几个图像 ID)只会产生 404。为什么?
【问题讨论】:
Docker Registry API 文档 (here) 声明您可以:
https://index.docker.io/v1/images/088b4505aa3adc3d35e79c031fa126b403200f02f51920fbd9b7c503e87c7a2c/ancestry
但是这(我尝试了几个图像 ID)只会产生 404。为什么?
【问题讨论】:
您使用的域不正确。文档示例中的注释:
GET /v1/images/088b4505aa3adc3d35e79c031fa126b403200f02f51920fbd9b7c503e87c7a2c/ancestry HTTP/1.1
Host: registry-1.docker.io
Accept: application/json
Content-Type: application/json
Cookie: (Cookie provided by the Registry)
您应该使用 registry-1.docker.io,而不是 index.docker.io。所以你的网址应该是:
https://registry-1.docker.io/v1/images/088b4505aa3adc3d35e79c031fa126b403200f02f51920fbd9b7c503e87c7a2c/ancestry
当我运行它时,我不再收到 404,而是收到授权错误。这是因为您需要针对 index.docker.io 进行身份验证,然后针对 registry-1.docker.io 运行您的 api。
没有很好的记录 - 您可能会发现此讨论很有帮助:
https://forums.docker.com/t/registry-hub-api-is-buggy/732
来自讨论:
registry-1.docker.io 是用于存储镜像的 docker-registry, 此 API 是公开的,但需要授权。
index.docker.io 是现在称为 RegistryHub 的“索引”,这个标签 端点不是公开的,并且可能随时更改。我不会用 这一个,因为它仅供内部使用,并且可能会更改而无需 警告。
【讨论】: