删除远程docker注册表上的docker存储库 给定一个管理多个docker存储库的docker注册表,如何删除其中一个存储库?

删除远程docker注册表上的docker存储库 给定一个管理多个docker存储库的docker注册表,如何删除其中一个存储库?,docker,docker-registry,Docker,Docker Registry,给定存储库repo1、repo2和repo3 $ curl -X GET localhost:5000/v2/_catalog {"repositories":["repo1", "repo2", "repo3"]} 我想删除存储库repo1,这样\u catalog就不会列出repo1,比如 $ curl -X GET localhost:5000/v2/_catalog {"repositories&

给定存储库
repo1
repo2
repo3

$ curl -X GET localhost:5000/v2/_catalog
{"repositories":["repo1", "repo2", "repo3"]}
我想删除存储库
repo1
,这样
\u catalog
就不会列出
repo1
,比如

$ curl -X GET localhost:5000/v2/_catalog
{"repositories":["repo2", "repo3"]}
目前,repository
repo1
只有默认的
最新的“
图像标签

$ curl -X GET localhost:5000/v2/repo1/tags/list
{"name":"repo1","tags":["latest"]}
(这可能会影响删除
repo1
?)



我试过。。。 以下命令返回了
404未找到页面

$ curl -X DELETE localhost:5000/v1/repositories/repo1
$ curl -X DELETE localhost:5000/v2/repositories/repo1
$ curl -X DELETE localhost:5000/v2/repo1
并且以下返回的
{“errors”:[{“code”:“UNSUPPORTED”,“message”:“操作不受支持”。}]}

$ curl -X DELETE localhost:5000/v2/repo1/manifests/latest
使用 远程docker注册表是
registry/2.0

curl -vX GET localhost:5000/v2/
< HTTP/1.1 200 OK
...
< Docker-Distribution-Api-Version: registry/2.0
...
错误
{“errors”:[{“code”:“UNSUPPORTED”,“message”:“该操作不受支持”。}]}
表示您的注册表服务器中未启用删除功能。有关如何启用该选项的信息,请参见。在注册表配置中,您将添加以下部分:

delete:
  enabled: true

通过启用DELETE API,您只能从
v2/\u目录
中删除标记,而不能删除整个存储库

为此,您应该:


1。启用删除API:

1.1通过
config.yml
storage.delete.enabled:true

1.2由env:
-e REGISTRY\u STORAGE\u DELETE\u ENABLED=true

2。通过
get/v2//manifests/
(别忘了让Header
Accept:application/vnd.docker.distribution.manifest.v2+json

在响应标题中,您有
docker内容摘要:

3。发送
DELETE/v2//manifests/

4。运行垃圾收集器:
bin/registry垃圾收集/etc/docker/registry/config.yml

5。删除文件:
rm-r/var/lib/registry/docker/registry/v2/repositories/


最后:现在您可以看到

curl-X GET localhost:5000/v2/\u目录
{“存储库”:[“repo2”,“repo3”]}



ps.


5的后果:

可能重复的@BMitch类似但不同,因为我希望存储库
repo1
不列在
\u目录中。您看到指向:+1的答案了吗?我做了建议的更改。现在我得到了
$curl-X DELETE localhost:5000/v2/repo1/manifests/latest
结果
{“errors”:[{“code”:“DIGEST\u INVALID”,“message”:“提供的摘要与上载的内容不匹配”}]}
。要删除图像,需要指定摘要,而不是标记。请注意,这不会删除单个标记,因为多个标记可以引用摘要标识的一个图像。
delete:
  enabled: true