1. ホーム
  2. ドッカー

DockerRegistryV2 イメージの削除

2022-03-03 01:58:08

バージョンを使用する

<ブロッククオート

テストバージョン: registry-2.4.1

ミラー削除の手順

1. ミラーを削除するには  /v2/< ミラー名 >/manifests/< タグ ミラーのダイジェストを取得するための>方法
なお、フェッチリクエストのヘッダには
<スパン <スパン 受け入れてください。 アプリケーション/vnd.docker.distribution.manifest.v2+json
そうでない場合は正しいダイジェストが得られません(ダイジェストは得られますが、その後の削除操作に失敗します)。
そのヘッダ値がなく失敗した場合の返り値は
404 {"errors": [{"code":"MANIFEST_UNKNOWN","message":"manifest unknown"}] を参照してください。
2. ミラーを削除する
DELETE /v2/< 名称 >/manifests/< 参照 >

ps: 私はプラス認証サービスを持っているので、ダイジェストと削除操作の前に認証サービスにトークンを取得しに行く。

<スパン 削除時に発生しやすい問題

<ブロッククオート <ブロッククオート
<スパン 1. ミラーの削除は不完全で、マニフェストのみが削除されます。詳しくは https://github.com/docker/distribution/issues/1755 をご覧ください。
2. レジストリの設定ファイルに設定されていない
<ブロッククオート <ブロッククオート <ブロッククオート

を削除してください。

<ブロッククオート <ブロッククオート

を有効にします。

<ブロッククオート <ブロッククオート

<ブロッククオート <ブロッククオート
<スパン 質問の全文は、http://dockone.io/question/883 をご覧ください。
<ブロッククオート <ブロッククオート
<スパン
3、レジストリの設定可能な問題は、公式サイトの設定ファイルの導入を参照してください: https://docs.docker.com/registry/configuration/#delete
4. 画像は完全に削除することはできず、タグ情報と関連するマニフェストのみが削除されます。画像の実際のリポジトリは _catlog を介してまだ存在します。
しかし、削除されたタグの情報にはもうクエリタグが存在しない。(このディレクトリを削除したい場合は、ファイルディレクトリを手動で削除することになると思いますが、これでは関連するレイヤーが壊れてしまいます)

 公式サイト紹介

画像の削除

<スパン で

name
and
reference
ミラーの削除 削除のためのapiは以下の通りです(postやgetではなく、DELETEメソッド)。

DELETE /v2/<name>/manifests/<reference>


削除する場合 ,  reference must be a mirror of the をダイジェストで表示しないと失敗します。ミラーが存在し、削除に成功した場合は、次のようなレスポンスが返されます (レスポンス)。

202 Accepted
Content-Length: None


実際のテストリターン(postmanを使用)。 

ステータス  202
受入

戻り値 body : (空)

戻り値ヘッダー

コンテンツの長さ → 0
コンテンツタイプ → text/plain; charset=utf-8
日付 → <スパン 2016年11月03日(木) 09:16:19 GMT
Docker-Distribution-Api-Version(ドッカー・ディストリビューション・アパイ・バージョン) →。 レジストリ/2.0
X-Content-Type-Optionsの場合 →. ノスニフ

ミラーが削除された場合、レスポンスの http ステータスは : 

404 Not Found

<スパン 備考  マニフェストを削除する際、バージョンが2.3以上の場合は

HEAD
or
GET method
<スパン ダイジェストを取得するためには、以下のようなリクエストヘッダを追加する必要があります(そうしないと削除に失敗します)。

Accept: application/vnd.docker.distribution.manifest.v2+json