13.7.5. イメージの手動プッシュによるイメージストリームの作成
イメージストリームはイメージを内部レジストリーに手動でプッシュすると自動的に作成されます。これは OpenShift Container Platform 内部レジストリーを使用している場合にのみ可能です。
この手順を実行する前に、以下の条件を満たしている必要があります。
- プッシュ先となる宛先プロジェクトがすでに存在している必要がある。
-
ユーザーはそのプロジェクトで
{get, update} "imagestream/layers"
を実行する権限がある必要があります。さらに、イメージストリームが存在していない場合、ユーザーはそのプロジェクトで{create} "imagestream"
を実行する権限がなければなりません。プロジェクト管理者にはこれらを実行するパーミッションがあります。
system:image-pusher ロールは新規イメージストリームの作成パーミッションを付与せず、既存イメージストリームにイメージをプッシュするパーミッションのみを付与するため、ユーザーに追加パーミッションが付与されない場合、存在していないイメージストリームにイメージをプッシュするためにこのパーミッションを使用することはできません。
イメージを手動でプッシュしてイメージストリームを作成するには、以下を実行します。
- まず、内部レジストリーにログインします。
次に、適切な内部レジストリーの場所を使用してイメージにタグを付けます。たとえば、docker.io/centos:centos7 イメージをローカルにプルしている場合は以下を実行します。
$ docker tag docker.io/centos:centos7 172.30.48.125:5000/test/my-image
最後に、イメージを内部レジストリーにプッシュします。以下に例を示します。
$ docker push 172.30.48.125:5000/test/my-image The push refers to a repository [172.30.48.125:5000/test/my-image] (len: 1) c8a648134623: Pushed 2bf4902415e3: Pushed latest: digest: sha256:be8bc4068b2f60cf274fc216e4caba6aa845fff5fa29139e6e7497bb57e48d67 size: 6273
イメージストリームが作成されていることを確認します。
$ oc get is NAME DOCKER REPO TAGS UPDATED my-image 172.30.48.125:5000/test/my-image latest 3 seconds ago