OpenShift Docker 登录问题

OpenShift Docker login issue

我已经根据 Red Hat 说明设置了本地 OpenShift 实例并安装了 docker 注册表。但是,我在登录内部 docker 注册表时遇到问题。我确信我对 Docker and/or OpenShift 工作原理的理解存在一些差距。我已经为我的用户提供了 admin、cluster-admin 和 system:registry 角色,这是我认为我需要的。我通过 oc 登录,然后尝试像这样登录注册表:

docker login -u $(oc whoami) -e 'xxxxxx' -p $(oc whoami -t) $(hostname):8443

我得到以下回复:

Error response from daemon: Unexpected status code [403] : {
    "kind": "Status",
    "apiVersion": "v1",
    "metadata": {},
    "status": "Failure",
    "message": "User \"system:anonymous\" cannot \"post\" on \"/v1/users/\"",
    "reason": "Forbidden",
    "details": {},
    "code": 403
}

我没有找到很多关于这个特定错误消息的信息,所以我不确定我到底遗漏了什么。

本应使用内部 docker IP:

# oc get svc docker-registry -n default
NAME              CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
docker-registry   172.30.10.52   <none>        5000/TCP   9h

如果您在 openshift 集群之外访问 docker 注册表。这些是您必须要做的事情。

为服务创建路由(从 cli 或 web 控制台)。 oc create route --service=<registryName> 如果您使用的是自签名证书,请将此路由添加到主机的不安全 docker 注册表选项(取决于您使用的主机)。 然后尝试 docker 登录到 docker 注册表。 你说你在 openshift 中安装了一个注册表,他们已经在 openshift 中有一个 docker 注册表 运行。