Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

13.5. 内部レジストリーへのアクセス

イメージのプッシュまたはプルを実行するために OpenShift Container Platform の内部レジストリーに直接アクセスできます。たとえば、これは イメージの手動プッシュによってイメージストリームを作成する 場合や、単にイメージに対して docker pull を直接実行する場合に役立ちます。

内部レジストリーは OpenShift Container Platform API と同じ トークン を使用して認証します。内部レジストリーに対して docker login を実行するには、任意のユーザー名およびメールを使用できますが、パスワードは有効な OpenShift Container Platform トークンである必要があります。

内部レジストリーにログインする方法:

  1. OpenShift Container Platform にログインします。

    $ oc login
  2. アクセストークンを取得します。

    $ oc whoami -t
  3. トークンを使用して内部レジストリーにログインします。docker をシステムにインストールしておく必要があります。

    $ docker login -u <user_name> -e <email_address> \
        -p <token_value> <registry_server>:<port>
    注記

    使用するレジストリー IP またはホスト名およびポートが不明な場合は、クラスター管理者に問い合わせてください。

イメージをプルするには、要求される imagestreams/layers に対する get 権限が、この認証済みのユーザーに割り当てられている必要があります。また、イメージをプッシュするには、認証済みのユーザーに、要求される imagestreams/layers に対する update 権限が割り当てられている必要があります。

デフォルトで、プロジェクトのすべてのサービスアカウントは同じプロジェクトの任意のイメージをプルする権限を持ち、builder サービスアカウントには同じプロジェクトの任意のイメージをプッシュする権限を持ちます。

13.5.1. リポジトリーの一覧表示

リポジトリーまたはイメージストリーム名の一覧表示は /v2/_catalog エンドポイントでサポートされます。

唯一の要件として、認証されたユーザーにはクラスター全体での imagestreams に対して list 権限が必要になります。

イメージストリームを一覧表示するためのパーミッションをユーザーに付与するには、以下を実行します。

$ oc adm policy add-cluster-role-to-user registry-viewer user

リポジトリーを一覧表示するには、以下を実行します。

$ oc login -u user
$ curl -v -u unused:$(oc whoami -t) https://<registry_server>:<port>/v2/_catalog?n=100
重要

この API 呼び出しは、クラスターに多数のイメージストリームが含まれる場合に多くのコストがかかります。すべてのイメージストリームを一覧表示するのではなく、ページネーションを使用することが推奨されます。