在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."}]}
有人成功吗?
更新:
我提供的链接中的任何解决方案都没有,并且仍然会出现“不受支持”的错误。
答案 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'-删除此标签时,这也会删除“常规”标签上的相关图像。 希望这是您想要实现的目标。