我正在使用ic插件运行使用docker容器和Bluemix的指示。当我运行命令时:
cf ic login
我收到消息:
您的系统已使用IBM Containers API进行身份验证,但是 无法访问本地Docker守护程序以与IBM进行身份验证 容器注册表。您仍然可以在云上运行IBM Containers 将无法推或拉图像。
如果我在本地使用docker而不运行cf ic登录,那么一切似乎都没问题。
在cf ic登录后,如果我运行任何docker命令,例如:
docker tag ibmjstart/bluemix-wordpress registry.ng.bluemix.net/myNamespace/wordpress
命令失败并显示消息:
来自守护程序的错误响应:405不允许的方法
不允许的方法
请求的URL不允许使用该方法。
非常感谢任何有关检查事项的指导。谢谢!
答案 0 :(得分:1)
V.Bontempi提供的答案非常有用,可能只是让我不太了解他所说的内容,但澄清它实际上是将env变量设置为将专门指向Bluemix 这导致了这个问题。设置env变量
时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而不是本地实例。所以,如果我设置env变量,在我尝试使用本地图像并按照此处的教程标记它之后执行此操作:
WordPress on Bluemix Containers
我尝试运行命令:
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)安装并配置docker以在本地工作 这是您需要做的第一个想法,因此您可以在推送到Bluemix中的IBM Containers之前在本地创建映像。 要使此步骤起作用,您必须配置docker环境变量。为此,您可以运行以下命令: eval" $(docker-machine env default)"
这将为您本地的docker设置环境变量。如果不设置此变量,Docker将无法工作。 设置完成后,您可以尝试基本的docker命令,例如:
docker images
docker ps
如果您没有设置环境变量,您会注意到这些命令不起作用。
2)登录Bluemix和IBM Containers 现在已安装并配置了docker,您可以使用以下命令登录:
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支持团队的帮助!
答案 1 :(得分:0)
这是因为cf ic输出建议您在使用docker client远程工作之前必须将docker从本地引擎切换到Bluemix。 根据cf ic login的输出建议,您只需将以下env变量设置为远程Bluemix引用,完全按照建议 DOCKER_TLS_VERIFY DOCKER_HOST DOCKER_CERT_PATH
然后,如果您想切换回来,只需将值设置为之前的值(最终打印并在切换前保存)