8.7. タグの有効期限を設定する


タグの有効期限 機能を使用すると、選択した日時に Red Hat Quay リポジトリーのイメージタグが期限切れになるように設定できます。この機能には次の特徴があります。

  • イメージタグの有効期限が切れると、そのタグがリポジトリーから削除されます。特定のイメージに対する最後のタグであれば、そのイメージも削除するように設定されます。
  • 有効期限はタグごとに設定されます。リポジトリー全体に対して設定されるものではありません。
  • タグは期限切れになったり、削除されたりしても、レジストリーからすぐには削除されません。これは、タイムマシン 機能で設計された割り当て時間によって決まります。この時間により、タグを完全に削除するタイミング、またはガベージコレクションを行うタイミングが定義されます。デフォルトでは、この値は 14 日 に設定されていますが、管理者は複数のオプションから 1 つ選択することで、この時間を調整できます。ガベージコレクションが発生するまでは、タグの変更を元に戻すことができます。

Red Hat Quay のスーパーユーザーには、ユーザーリポジトリーからの期限切れイメージの削除に関する特別な権限はありません。スーパーユーザーがユーザーリポジトリーの情報を収集し、操作するための一元的なメカニズムはありません。有効期限やイメージ削除の管理は、各リポジトリーの所有者に委ねられています。

タグの有効期限は、次の 3 つの方法のいずれかで設定できます。

  • イメージの作成時に Dockerfile に quay.expires-after= ラベルを設定します。これは、イメージをビルドした時点からの有効期間を設定するものです。このラベルはイメージマニフェストに対してのみ機能します。
  • イメージの作成時に、Dockerfile に quay.expires-after= アノテーションラベルを設定します。--annotation は、イメージマニフェストとイメージインデックスの両方に渡すことができます。
  • Red Hat Quay UI で有効期限を選択する方法。以下に例を示します。

    Change tag expiration under the Options icon or from the EXPIRES column

タグの有効期限を設定すると、古いタグや未使用のタグのクリーンアップを自動化できるため、ストレージ容量を削減できます。

8.7.1. リポジトリーからタグの有効期限を設定する

手順

  1. Red Hat Quay v2 UI ダッシュボードのナビゲーションペインで Repositories をクリックします。
  2. イメージタグのあるリポジトリーの名前をクリックします。
  3. イメージの縦の省略記号メニューをクリックし、Change expiration を選択します。
  4. オプション: または、複数のタグのボックスをクリックし、Actions Set expiration を選択して有効期限を一括追加することもできます。
  5. Change Tags Expiration ウィンドウで、曜日、月、日、年を指定して有効期限を設定します。たとえば、Wednesday, November 15, 2023 に設定します。または、カレンダーボタンをクリックして日付を手動で選択することもできます。
  6. 時刻を 2:30 PM などに設定します。
  7. Change Expiration をクリックして日付と時刻を確認します。Successfully set expiration for tag test to Nov 15, 2023, 2:26 PM という通知が返されます。
  8. Red Hat Quay v2 UI の Tags ページで、タグの有効期限の設定を確認できます。以下に例を示します。

    Red Hat Quay v2 UI tag expiration

8.7.2. Dockerfile からタグの有効期限を設定する

docker label コマンドを使用してイメージタグにラベル (例: quay.expires-after=20h) を追加すると、指定時間の経過後にタグが自動的に期限切れになります。以下に示す時間、日、または週の値を指定できます。

  • 1h
  • 2d
  • 3w

有効期限は、イメージがレジストリーにプッシュされた時点から始まります。

手順

  • 次の docker label コマンドを入力し、目的のイメージタグにラベルを追加します。タグが 20 時間後に期限切れになるよう指定するには、ラベルを quay.expires-after=20h という形式にします。20h は、希望の有効期限に置き換えます。以下に例を示します。

    $ docker label quay.expires-after=20h quay-server.example.com/quayadmin/<image>:<tag>
    Copy to Clipboard Toggle word wrap

8.7.3. アノテーションを使用してタグの有効期限を設定する

イメージをレジストリーにプッシュするときに、--annotation フラグを使用して、quay.expires-after=20h などのアノテーションをイメージタグに追加できます。このアノテーションにより、指定された時間が経過するとタグが自動的に期限切れになります。アノテーションは、イメージマニフェストとイメージインデックスの両方に適用できます。以下に示す時間、日、または週の値を指定できます。

  • 1h
  • 2d
  • 3w

有効期限は、イメージがレジストリーにプッシュされた時点から始まります。

注記

--annotation フラグを使用する最も簡単な方法は、oras CLI ツールを使用することです。

前提条件

  • oras CLI をダウンロードした。詳細は、Installation を参照してください。

手順

  1. 目的のイメージタグにアノテーションを追加するには、次の oras push --annotation コマンドを入力します。アノテーションは、設定された時間にタグが期限切れになることを示すために quay.expires-after=<value> の形式にする必要があります。以下に例を示します。

    $ oras push --annotation quay.expires-after=<value> \
      <quay-server.example.com>/<organization>/<repository>:<tag> \
      <file_path>:<media_type>
    Copy to Clipboard Toggle word wrap

    出力例

    ✓ Uploaded  hello.txt                                                                                                       12/12  B 100.00%  321ms
      └─ sha256:74b9e308133afb3bceae961097cb2aa481483869d695ce1414cd2bc7f046027c
    ✓ Uploaded  application/vnd.oci.empty.v1+json                                                                                 2/2  B 100.00%  328ms
      └─ sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
    ✓ Uploaded  application/vnd.oci.image.manifest.v1+json                                                                    620/620  B 100.00%     0s
      └─ sha256:c370e931b5eca44fd753bd92e6991ed3be70008e8df15078083359409111f8c3
    Pushed [registry] quay-server.example.com/fortestuser/busybox:test2
    ArtifactType: application/vnd.unknown.artifact.v1
    Copy to Clipboard Toggle word wrap

  2. Red Hat Quay UI を確認するか、次のコマンドを入力して、有効期限が適用されていることを確認します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Accept: application/json" \
      https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/tag/?specificTag=<tag>" \
    Copy to Clipboard Toggle word wrap

    出力例

    {"tags": [{"name": "test2", "reversion": false, "start_ts": 1743706344, "end_ts": 1743778344, "manifest_digest": "sha256:c370e931b5eca44fd753bd92e6991ed3be70008e8df15078083359409111f8c3", "is_manifest_list": false, "size": 12, "last_modified": "Thu, 03 Apr 2025 18:52:24 -0000", "expiration": "Fri, 04 Apr 2025 14:52:24 -0000"}, {"name": "test2", "reversion": false, "start_ts": 1742493776, "end_ts": 1743706344, "manifest_digest": "sha256:d80aa3d7f5f5388cfae543b990d3cd3d47ff51c48ef29ff66102427bf7bc0a88", "is_manifest_list": false, "size": 2266046, "last_modified": "Thu, 20 Mar 2025 18:02:56 -0000", "expiration": "Thu, 03 Apr 2025 18:52:24 -0000"}], "page": 1, "has_additional": false}
    Copy to Clipboard Toggle word wrap

8.7.4. アノテーションを使用してタグの有効期限を削除する

oras CLI ツールを使用すると、以前に設定された有効期限を解除できます。

前提条件

  • oras CLI をダウンロードした。詳細は、Installation を参照してください。
  • quay.expires-after=<value> のアノテーションが付いたイメージをプッシュした。

手順

  1. 目的のイメージタグへのアノテーションを削除するには、次の oras push --annotation コマンドを入力します。アノテーションは quay.expires-after=never 形式にする必要があります。以下に例を示します。

    $ oras push --annotation quay.expires-after=never \
      <quay-server.example.com>/<organization>/<repository>:<tag> \
      <file_path>:<media_type>
    Copy to Clipboard Toggle word wrap

    出力例

    ✓ Uploaded  hello.txt                                                                                                       12/12  B 100.00%  321ms
      └─ sha256:74b9e308133afb3bceae961097cb2aa481483869d695ce1414cd2bc7f046027c
    ✓ Uploaded  application/vnd.oci.empty.v1+json                                                                                 2/2  B 100.00%  328ms
      └─ sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
    ✓ Uploaded  application/vnd.oci.image.manifest.v1+json                                                                    620/620  B 100.00%     0s
      └─ sha256:c370e931b5eca44fd753bd92e6991ed3be70008e8df15078083359409111f8c3
    Pushed [registry] quay-server.example.com/fortestuser/busybox:test2
    ArtifactType: application/vnd.unknown.artifact.v1
    Copy to Clipboard Toggle word wrap

  2. 最新のマニフェストには有効期限がなくなります。Red Hat Quay UI を確認するか、次のコマンドを入力して、有効期限が削除されたことを確認します。

    {"tags": [{"name": "test2", "reversion": false, "start_ts": 1743708135, "manifest_digest": "sha256:19e3a3501b4125cce9cb6bb26ac9207c325259bef94dc66490b999f93c4c83a9", "is_manifest_list": false, "size": 12, "last_modified": "Thu, 03 Apr 2025 19:22:15 -0000"}, {"name": "test2", "reversion": false, "start_ts": 1743706344, "end_ts": 1743708135}]}
    Copy to Clipboard Toggle word wrap

    有効期限は記載されていないことに注意してください。

8.7.5. API を使用してタグの有効期限を設定する

API を使用してイメージタグの有効期限を設定できます。

前提条件

手順

  • PUT /api/v1/repository/{repository}/tag/{tag} コマンドを使用して有効期限フィールドを渡すことで、イメージのタグの有効期限を設定できます。

    $ curl -X PUT \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      --data '{
        "manifest_digest": "<manifest_digest>"
      }' \
      https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/tag/<tag>
    Copy to Clipboard Toggle word wrap

    出力例

    "Updated"
    Copy to Clipboard Toggle word wrap

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat