13.5. 访问内部 registry
您可以直接访问 OpenShift Container Platform 的内部 registry 来推送或拉取镜像。例如,如果您想 通过手动推送镜像来创建镜像流,或者只是直接进行 docker pull
,则这很有用。
内部 registry 使用与 OpenShift Container Platform API 相同的令牌进行身份验证。要针对内部 registry 执行 docker 登录
,您可以选择任何用户名和密码,但密码必须是有效的 OpenShift Container Platform 令牌。
登录到内部 registry:
登录到 OpenShift Container Platform:
$ oc login
获取您的访问令牌:
$ oc whoami -t
使用该令牌登录到内部 registry。在您的系统中必须安装 docker :
$ docker login -u <user_name> -e <email_address> \ -p <token_value> <registry_server>:<port>
注意如果您不知道要使用的 registry IP 或主机名和端口,请联络您的集群管理员。
若要拉取镜像,经过身份验证的用户必须具有所请求的 imagestreams/layers
的 get
权限。若要推送镜像,经过身份验证的用户必须具有所请求的 imagestreams/layers
的 update
权限。
默认情况下,一个项目中的所有服务帐户都有权拉取同一项目中的任何镜像,而 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 调用非常昂贵。建议您使用分页而不是列出所有镜像流。