13.5. 内部レジストリーへのアクセス
イメージのプッシュまたはプルを実行するために OpenShift Container Platform の内部レジストリーに直接アクセスできます。たとえば、これは イメージの手動プッシュによってイメージストリームを作成する 場合や、単にイメージに対して docker pull
を直接実行する場合に役立ちます。
内部レジストリーは OpenShift Container Platform API と同じ トークン を使用して認証します。内部レジストリーに対して docker login
を実行するには、任意のユーザー名およびメールを使用できますが、パスワードは有効な OpenShift Container Platform トークンである必要があります。
内部レジストリーにログインする方法:
OpenShift Container Platform にログインします。
$ oc login
アクセストークンを取得します。
$ oc whoami -t
トークンを使用して内部レジストリーにログインします。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 呼び出しは、クラスターに多数のイメージストリームが含まれる場合に多くのコストがかかります。すべてのイメージストリームを一覧表示するのではなく、ページネーションを使用することが推奨されます。