13.2. イメージのタグ付け
OpenShift Container Platform イメージストリームとそのタグを使用する前に、コンテナーイメージのコンテキストにおけるイメージタグ全般について理解しておくと便利です。
コンテナーイメージにはその内容を直感的に判別できるようにする名前 (タグ) を追加できます。タグの一般的な使用例として、イメージに含まれるもののバージョンを指定するために使用できます。ruby という名前のイメージがある場合、Ruby の 2.0 バージョン用に 2.0 という名前のタグを使用したり、リポジトリー全体における最新のビルドされたイメージを示す latest というタグを使用したりすることができます。
docker
CLI を使用してイメージと直接対話する場合、docker tag
コマンドを使用してタグを追加できます。基本的に、この操作は複数の部分で設定されるエイリアスをイメージに追加する操作です。これには、以下が含まれます。
<registry_server>/<user_name>/<image_name>:<tag>
上記の <user_name>
の部分は、イメージが内部レジストリー (OpenShift Container レジストリー) を使用して OpenShift Container Platform 環境に保存される場合には、プロジェクト または namespace も参照することがあります。
OpenShift Container Platform は docker tag
コマンドに似た oc tag
コマンドを提供しますが、これらはイメージ上で直接動作するのではなくイメージストリームで動作します。
docker
CLI を使用してイメージに直接タグ付けする方法についての詳細は、Red Hat Enterprise Linux 7 の Getting Started with Containers ドキュメントを参照してください。
13.2.1. タグのイメージストリームへの追加
OpenShift Container Platform のイメージストリームはタグで識別されるゼロまたは 1 つ以上のコンテナーイメージで設定されることに留意した上で、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
フラグはインポートされないイメージストリームを作成します。このタグはソースの場所を参照しますが、これを永続的に参照します。
Docker に対して統合レジストリーのタグ付けされたイメージを常にフェッチするよう指示するには、--reference-policy=local
を使用します。レジストリーは プルスルー (pull-through) 機能 を使用してイメージをクライアントに提供します。デフォルトで、イメージ Blob はレジストリーによってローカルにミラーリングされます。その結果、それらが次回必要となる場合により迅速にプルされます。またこのフラグは --insecure-registry
を Docker デーモンに指定しなくても、イメージストリームに 非セキュアなアノテーション があるか、またはタグに 非セキュアなインポートポリシー がある限り、非セキュアなレジストリーからのプルを許可します。