Bluemix Docker容器cf iclogin本地Docker守护进程无法进行身份validation

我正在通过使用ic插件与Docker容器和Bluemix一起工作的说明。 当我运行命令:

cf ic login

我收到消息:

您的系统已通过IBM Containers API进行身份validation,但本地Docker守护程序无法通过IBM Containersregistry进行身份validation。 您仍然可以在云上运行IBM Containers,但无法推送或拉出图像。

如果我在本地使用docker而不运行cf iclogin,所有似乎都没问题。

遵循cf iclogin,如果我运行任何docker命令如:

docker tag ibmjstart/bluemix-wordpress registry.ng.bluemix.net/myNamespace/wordpress

命令失败并显示消息:

来自守护进程的错误响应:405方法不允许

方法不允许

该方法不允许用于请求的URL。

任何指导的事情来检查,不胜感激。 谢谢!

V.Bontempi提供的答案是非常有帮助的,可能只是我不太清楚他在说什么,但是澄清它实际上是将envvariables设置为专门指向导致问题的Bluemix 。 当你设置envvariables

 export DOCKER_HOST=tcp://containers-api.ng.bluemix.net:8443 export DOCKER_CERT_PATH=/Users/jeff/.ice/certs/containers-api.ng.bluemix.net export DOCKER_TLS_VERIFY=1 

这告诉docker工人专门与Bluemix和本地实例工作。 所以,如果我设置了envvariables,那么当我尝试使用本地图像时,按照以下教程中的教程标记它:

Bluemix容器上的WordPress

我试着运行命令:

 docker tag ibmjstart/bluemix-wordpress registry.ng.bluemix.net/[namespace]/wordpress 

使用我的命名空间,该命令将失败,出现405错误。 另一方面,如果我运行下面的命令序列没有导出 ,一切都按预期工作:

 cf login cf ic login [-a https://api.ng.bluemix.net] [-H https://containers-api.ng.bluemix.net/v2/containers] [-R registry.ng.bluemix.net] docker tag ibmjstart/bluemix-wordpress registry.ng.bluemix.net/myNamespace/wordpress docker push registry.ng.bluemix.net/[namespace]/wordpress 

支持小组向我提供了以下解释:

1)安装并configurationdocker以在本地工作这是您首先想到的,因此您可以在推送到Bluemix中的IBM Containers之前在本地创build映像。 要执行此步骤,您必须configurationdocker环境variables。 为此,您可以运行以下命令:eval“$(docker-machine env default)”

这将为您的本地泊坞窗设置环境variables。 如果你没有设置这个variables,Docker将无法工作。 设置完成后,你可以尝试一些基本的docker命令,例如:

  docker images docker ps 

你会注意到,如果你没有设置环境variables,这些命令将不起作用。

2)login到Bluemix和IBM容器现在,已经安装并configuration了docker,您可以使用以下命令login:

  cf login cf ic login After that you can start playing with your images and pushing them to IBM Containers in Bluemix once they are ready. 

感谢Bluemix支持团队的帮助!

这是因为cf ic outputbuild议您在使用docker客户端远程工作之前,必须将docker从本地引擎切换到Bluemix。 正如从cf ic login的输出中所build议的那样,您只需将以下env vars设置为远程Bluemix引用即可,正如build议的那样DOCKER_TLS_VERIFY DOCKER_HOST DOCKER_CERT_PATH

然后,如果你想切换回来,只需将值设置为以前的值(最终打印出来并在切换之前保存)