2017-01-09 95 views
0

我已经设置了一个本地OpenShift实例,并根据Red Hat指示安装了Docker注册表。但是,我无法登录到内部码头注册表。我敢肯定,在理解Docker和/或OpenShift的工作方式方面存在一些差距。我给了我的用户管理员,集群管理员和系统:注册表角色,这是我相信我需要的。我通过OC登录,然后尝试登录到注册表中,像这样:OpenShift Docker登录问题

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 
} 

我没有找到有关此特定错误消息太多,所以我不确定我错过了什么。

+0

您的码头注册表地址是“$(hostname):8443”吗?这似乎是Web控制台地址 –

+0

omg。你是对的。嘎。我以为我真的到了某个地方。我一直在尝试使用内部IP和5000端口登录,但它似乎只是挂起。谢谢。我会关闭这个。 –

回答

0

本来应该使用内部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 
0

如果您正在访问的openshift集群外的码头工人注册表。这些是你必须要做的事情。

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