我正在为docker编写API客户端,并且注册表API难以使用。我试图从注册表中删除图像但是我一直收到此错误
[ { code: 'UNSUPPORTED', message: 'The operation is unsupported.' } ]
我的步骤如下,
> GET http://localhost:5000/v2/
> registry/2.0
> registry/2.0
> GET http://localhost:5000/v2/_catalog/
> { repositories: [ 'alpine' ] }
> GET http://localhost:5000/v2/alpine/tags/list
> { name: 'alpine', tags: [ 'latest' ] }
> HEAD http://localhost:5000/v2/alpine/manifests/latest
> sha256:df73ed0973f15f40496c148330f9b559f0a5583c03f6ac8d26adadf6f4690aff
> DELETE http://localhost:5000/v2/alpine/manifests/sha256:df73ed0973f15f40496c148330f9b559f0a5583c03f6ac8d26adadf6f4690aff
[ { code: 'UNSUPPORTED', message: 'The operation is unsupported.' } ]
我更新了我的问题,因为我找到了REGISTRY_STORAGE_DELETE_ENABLED
变量。
我现在像这样运行注册表容器,
docker run -d -p 5000:5000 -e REGISTRY_STORAGE_DELETE_ENABLED=true --name registry2 registry
会产生新错误,
[ { code: 'MANIFEST_UNKNOWN', message: 'manifest unknown' } ]
显然UNSUPPORTED
错误,实际上意味着禁用了特定功能。
但是我读到的所有内容都说删除清单的实体引用(来自HEAD请求的摘要)应该删除存储库。我只是想在我的私人注册表中建立一个无法访问的存储库,我认为已删除。
答案 0 :(得分:0)
即使这是一个老问题:解决方案也很简单。
DELETE http://localhost:5000/v2/alpine/manifests/sha256:df73ed0973f15f40496c148330f9b559f0a5583c03f6ac8d26adadf6f4690aff
是错误的,因为摘要以sha256:
为前缀。简单删除前缀,然后可以删除:
DELETE http://localhost:5000/v2/alpine/manifests/df73ed0973f15f40496c148330f9b559f0a5583c03f6ac8d26adadf6f4690aff