検索

4.2. イメージのタグ付け

download PDF

以下のセクションでは、OpenShift Container Platform イメージストリームおよびそれらのタグを操作するためにコンテナーイメージのコンテキストでイメージタグを使用する概要および方法について説明します。

4.2.1. イメージタグ

イメージタグは、イメージストリーム内の他のイメージから特定のイメージを識別するリポジトリーのコンテナーイメージに適用されるラベルです。通常、タグはある種のバージョン番号を表します。たとえば、ここでは v3.11.59-2 がタグになります。

registry.access.redhat.com/openshift3/jenkins-2-rhel7:v3.11.59-2

イメージにタグを追加することができます。たとえば、イメージには :v3.11.59-2 および :latest というタグが割り当てられる可能性があります。

OpenShift Container Platform は docker tag コマンドに似ている oc tag コマンドを提供しますが、イメージ上で直接動作するのではなくイメージストリーム上で動作します。

4.2.2. イメージタグの規則

イメージは時間の経過と共に変化するもので、それらのタグはその変化を反映します。ほとんどの場合、イメージタグはビルドされる最新イメージを常に参照します。

v2.0.1-may-2019 のように、タグ名に非常に多くの情報が組み込まれる場合、タグはイメージの単一のリビジョンのみを参照し、更新されることはありません。デフォルトのイメージのプルーニングオプションを使用しても、このようなイメージは削除されません。非常に大規模なクラスターでは、イメージが修正されるたびに新規タグが作成される設定の場合、古くなって久しいイメージの余分のタグメタデータで etcd データストアが一杯になる可能性があります。

タグの名前が v2.0 である場合はイメージのリビジョンの数が多くなることが予想されます。これによりタグ履歴が長くなるため、イメージプルーナーが古くなり使われなくなったイメージを削除する可能性が高くなります。

タグの名前付け規則は各自で定めることができますが、ここでは <image_name>:<image_tag> 形式のいくつかの例を見てみましょう。

表4.1 イメージタグの名前付け規則
説明

リビジョン

myimage:v2.0.1

アーキテクチャー

myimage:v2.0-x86_64

ベースイメージ

myimage:v1.2-centos7

最新 (不安定な可能性がある)

myimage:latest

最新 (安定性がある)

myimage:stable

タグ名に日付を含める必要がある場合、古くなり使用されなくなったイメージおよび istags を定期的に検査し、これらを削除してください。そうしないと、古いイメージを保持して、リソースの使用量が増大する可能性があります。

4.2.3. タグのイメージストリームへの追加

OpenShift Container Platform のイメージストリームは、タグで識別される 0 個以上のコンテナーイメージで構成されます。

各種のタグを利用できます。デフォルト動作では、特定の時点の特定のイメージを参照する永続タグを使用します。_permanent_tag が使用され、ソースが変更される場合、タグは宛先について変更されません。

追跡 タグの場合は、宛先タグのメタデータがソースタグのインポート時に更新されます。

手順

  • oc tag コマンドを使用して、タグをイメージストリームに追加できます。

    $ oc tag <source> <destination>

    たとえば、ruby イメージストリームの static-2.0 タグを ruby イメージストリーム 2.0 タグの現行のイメージを常に参照するように設定するには、以下を実行します。

    $ oc tag ruby:2.0 ruby:static-2.0

    これにより、ruby イメージストリームに static-2.0 という名前のイメージストリームタグが新たに作成されます。この新規タグは、oc tag の実行時に ruby:2.0 イメージストリームタグが参照したイメージ ID を直接参照し、これが参照するイメージが変更されることはありません。

  • 宛先タグがソースタグの変更時に常に更新されるようにするには、--alias=true フラグを使用します。

    $ oc tag --alias=true <source> <destination>
注記

永続的なエイリアス (latest または stable など) を作成するには、追跡タグを使用します。このタグは単一イメージストリーム内でのみ適切に機能します。複数のイメージストリーム間で使用されるエイリアスを作成しようとするとエラーが生じます。

  • また、--scheduled=true フラグを追加して、宛先タグが定期的に更新 (再インポート) されるようにもできます。期間はシステムレベルでグローバルに設定できます。
  • --reference フラグは、インポートされていないイメージストリームタグを作成します。このタグはソースの場所を参照しますが、これを永続的に参照します。

    統合レジストリーのタグ付けされたイメージを常にフェッチするように OpenShift に指示するには、--reference-policy=local を使用します。レジストリーはプルスルー (pull-through) 機能を使用してイメージをクライアントに提供します。デフォルトで、イメージ Blob はレジストリーによってローカルにミラーリングされます。その結果、それらが次回必要となる場合により迅速にプルされます。また、このフラグは --insecure-registry をコンテナーランタイムに指定しなくても、イメージストリームに非セキュアなアノテーションがあるか、またはタグに非セキュアなインポートポリシーがある限り、非セキュアなレジストリーからのプルを許可します。

4.2.4. タグのイメージストリームからの削除

タグをイメージストリームから削除できます。

手順

タグをイメージストリームから完全に削除するには、以下を実行します。

$ oc delete istag/ruby:latest

または、以下を実行します。

$ oc tag -d ruby:latest

4.2.5. イメージストリームでのイメージの参照

タグを使用してイメージストリームのイメージを参照するには、以下の参照タイプを使用します。

表4.2 イメージストリームの参照タイプ
参照タイプ説明

ImageStreamTag

ImageStreamTag は、所定のイメージストリームおよびタグのイメージを参照または取得するために使用されます。

ImageStreamImage

ImageStreamImage は、所定のイメージストリームおよびイメージの sha ID のイメージを参照または取得するために使用されます。

DockerImage

DockerImage は、所定の外部レジストリーのイメージを参照または取得するために使用されます。この名前は、標準の Docker プル仕様に基づいて付けられます。

イメージストリーム定義のサンプルを表示すると、これらには ImageStreamTag の定義と DockerImage の参照が含まれていますが、ImageStreamImage に関連するものは何も含まれていないことに気づくでしょう。

これは、ImageStreamImage オブジェクトが、イメージをイメージストリームにインポートしたり、タグ付けしたりする際に OpenShift Container Platform に自動的に作成されるためです。イメージストリームを作成するために使用するイメージストリーム定義に ImageStreamImage オブジェクトを明示的に定義する必要はありません。

手順

  • 所定のメージストリームおよびタグのイメージを参照するには、ImageStreamTag を使用します。

    <image_stream_name>:<tag>
  • 所定のイメージストリームおよびイメージの sha ID のイメージを参照するには、ImageStreamImage を使用します。

    <image_stream_name>@<id>

    <id> は、ダイジェストとも呼ばれる特定イメージのイミュータブルな ID です。

  • 所定の外部レジストリーのイメージを参照または取得するには、DockerImage を使用します。

    openshift/ruby-20-centos7:2.0
    注記

    タグが指定されていない場合、latest タグが使用されることが想定されます。

    サードパーティーのレジストリーを参照することもできます。

    registry.redhat.io/rhel7:latest

    またはダイジェストでイメージを参照できます。

    centos/ruby-22-centos7@sha256:3a335d7d8a452970c5b4054ad7118ff134b3a6b50a2bb6d0c07c746e8986b28e

4.2.6. 追加情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.