Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

13.5. 访问内部 registry

您可以直接访问 OpenShift Container Platform 的内部 registry 来推送或拉取镜像。例如,如果您想 通过手动推送镜像来创建镜像流,或者只是直接进行 docker pull,则这很有用。

内部 registry 使用与 OpenShift Container Platform API 相同的令牌进行身份验证。要针对内部 registry 执行 docker 登录,您可以选择任何用户名和密码,但密码必须是有效的 OpenShift Container Platform 令牌。

登录到内部 registry:

  1. 登录到 OpenShift Container Platform:

    $ oc login
  2. 获取您的访问令牌:

    $ oc whoami -t
  3. 使用该令牌登录到内部 registry。在您的系统中必须安装 docker

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

    如果您不知道要使用的 registry IP 或主机名和端口,请联络您的集群管理员。

若要拉取镜像,经过身份验证的用户必须具有所请求的 imagestreams/layersget 权限。若要推送镜像,经过身份验证的用户必须具有所请求的 imagestreams/layersupdate 权限。

默认情况下,一个项目中的所有服务帐户都有权拉取同一项目中的任何镜像,而 builder 服务帐户则有权在同一项目中推送任何镜像。

13.5.1. 列出软件仓库

/v2/_catalog 端点支持存储库列表或镜像流名称。

唯一的要求是经过身份验证的用户必须具有整个集群中 镜像流列表权限。

要为用户授予列出镜像流的权限,请运行:

$ 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 调用非常昂贵。建议您使用分页而不是列出所有镜像流。