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 loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow 获取您的访问令牌:
oc whoami -t
$ oc whoami -tCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用该令牌登录到内部 registry。在您的系统中必须安装 docker :
docker login -u <user_name> -e <email_address> \ -p <token_value> <registry_server>:<port>$ docker login -u <user_name> -e <email_address> \ -p <token_value> <registry_server>:<port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您不知道要使用的 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 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
$ oc login -u user
$ curl -v -u unused:$(oc whoami -t) https://<registry_server>:<port>/v2/_catalog?n=100
对于集群中的大量镜像流,这个 API 调用非常昂贵。建议您使用分页而不是列出所有镜像流。