删除远程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"]}
目前,repositoryrepo1
只有默认的最新的“
图像标签
$ 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/
(别忘了让HeaderAccept: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