Docker Registry API文档(here)声明您可以执行以下操作:
https://index.docker.io/v1/images/088b4505aa3adc3d35e79c031fa126b403200f02f51920fbd9b7c503e87c7a2c/ancestry
然而,这(我已经尝试了几个图像ID)只产生404.为什么?
答案 0 :(得分:2)
您使用的是不正确的域名。请注意文档示例:
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的“索引”,这个标签 端点不公开,可能随时更改。我不会用 这个,因为它仅供内部使用,可能没有改变 警告。