web-dev-qa-db-ja.com

Docker-プライベートレジストリからイメージを削除する方法

Dockerの「プライベートレジストリからイメージを削除する方法」に対する良い答えはまだありません。

すでに以下を試しました:
Dockerイメージをレジストリから削除できません
プライベートDockerレジストリから画像を削除する方法?
プライベートDockerレジストリからイメージを「削除」する方法
しかし、上記のどれも機能しないようです。

他の人と同じように、私はすでに試しました:

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

そして

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

そして毎回入手:

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


誰かがこれで成功しましたか?

更新:
私が与えたリンクの解決策はどれも機能しませんが、それでも「サポートされていない」エラーが発生します。

6
OrAssayag

これは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
wei li