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

Docker-如何从私有注册表中删除图像,docker,registry,Docker,Registry,对于docker中的“如何从私有注册表中删除图像”,目前还没有很好的答案 已尝试以下操作: 但以上这些似乎都不起作用 和其他人一样,我已经尝试过: DELETE /v2/orassayag/osr_streamer_nginx/manifests/sha256:051adb935bff30abba811fd64da28a5f3b19a48f07c74b067e3bd61ab91152b5 HTTP/1.1 及 每一次都能得到: {"errors":[{"co

对于docker中的“如何从私有注册表中删除图像”,目前还没有很好的答案

已尝试以下操作:



但以上这些似乎都不起作用

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

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

每一次都能得到:

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

有人成功了吗? 更新:

我给出的链接中的解决方案都不起作用,仍然会出现“不受支持”的错误。

这是一个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)

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

的可能副本包括一系列相关HTTP API调用,其他答案包括至少三个指向外部工具的链接。看起来你需要同时删除图像标签和它下面的特定层清单。已经尝试过了,仍然得到“不支持”的错误。运气好吗?面对同样的问题。我真的希望有一个可靠的快速处理陈旧图像的方法
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)