Docker-如何从私有注册表中删除映像

时间:2019-01-09 11:44:48

标签: docker registry

在Docker中,“ 如何从私有注册表中删除映像”还没有好的答案。

已尝试以下操作:
Can't delete Docker Image from Registry
How to delete images from a private docker registry?
How to "delete" an image from a private Docker Registry?
但是上述方法似乎都不起作用。

和其他所有人一样,我已经尝试过:

DELETE /v2/orassayag/osr_streamer_nginx/manifests/sha256:051adb935bff30abba811fd64da28a5f3b19a48f07c74b067e3bd61ab91152b5 HTTP/1.1

AND

DELETE /v2/orassayag/osr_streamer_nginx/manifests/051adb935bff30abba811fd64da28a5f3b19a48f07c74b067e3bd61ab91152b5 HTTP/1.1

并获得每次:

{"errors":[{"code":"UNSUPPORTED","message":"The operation is unsupported."}]}


有人成功吗?

更新:
我提供的链接中的任何解决方案都没有,并且仍然会出现“不受支持”的错误。

2 个答案:

答案 0 :(得分:0)

这是一个python脚本,用于删除私有注册表中的所有图片,它适用于我的私有注册表。

import requests
for repo in requests.get('https://192.168.2.31:5000/v2/_catalog', verify=False).json()['repositories']:
    headers = requests.get('https://192.168.2.31:5000/v2/%s/manifests/v1' % repo, headers = {'Accept': 'application/vnd.docker.distribution.manifest.v2+json'}, verify=False).headers
    if 'Docker-Content-Digest' in headers:
        requests.delete('https://192.168.2.31:5000/v2/%s/manifests/%s' % (repo, headers['Docker-Content-Digest']), verify=False)

答案 1 :(得分:0)

您可以通过Docker Web界面删除标签-登录,打开映像所在的存储库,转到名为“标签”的标签,找到要删除的映像-右侧有一个按钮看起来像垂直的三个点-单击时显示选项'Delete'-删除此标签时,这也会删除“常规”标签上的相关图像。 希望这是您想要实现的目标。