Bluemix上的Docker run命令不允许正确设置环境变量

Bluemix上的Docker run命令不允许正确设置环境变量,docker,containers,ibm-cloud,Docker,Containers,Ibm Cloud,当我尝试创建一个docker容器时 cf ic run -e AUTHORIZED_KEYS="`cat ~/.ssh/id_rsa.pub`" --name ssh-test -d busybox 或者在使用设置环境变量之后 docker run -e AUTHORIZED_KEYS="`cat ~/.ssh/id_rsa.pub`" --name ssh-test -d busybox 我总是返回以下错误消息,在本地docker主机上运行命令时不会报告该消息: FATA[0001] Er

当我尝试创建一个docker容器时

cf ic run -e AUTHORIZED_KEYS="`cat ~/.ssh/id_rsa.pub`" --name ssh-test -d busybox
或者在使用设置环境变量之后

docker run -e AUTHORIZED_KEYS="`cat ~/.ssh/id_rsa.pub`" --name ssh-test -d busybox
我总是返回以下错误消息,在本地docker主机上运行命令时不会报告该消息:

FATA[0001] Error response from daemon: Error creating container 
{'space_guid': u'guid', 'name': u'ssh-test', 'tenant_name': u'tenant',
'image': u'guid', 'security_groups': None, 'flavor': u'1', 'id': None,
'tenant': u'tenant'}: too many values to unpack 
我尝试了一些方法,触发错误消息的最简单方法是执行以下命令,其中包含两个等于(
=
)字符:

cf ic run -e "AUTHORIZED_KEYS='ABC=='" --name ssh-test busybox

我是做错了什么还是不支持此用例?

遵循此Docker文档,需要在双引号中包含环境变量

这可能就是cat命令的输出被分解的原因,给出了“太多的值需要解包”。 可能在本地执行时会对其进行检查和“更正”,但在网络打包/解包期间不支持省略双引号


无论如何,根据我上面链接的Docker文档,您可以尝试直接在Docker文件中添加公钥的值,您可以像通过控制台那样指定环境变量:使用Dockerfile将允许您以更舒适的方式管理公钥的值。

遵循此Docker文档,环境变量需要包含在双引号中

这可能就是cat命令的输出被分解的原因,给出了“太多的值需要解包”。 可能在本地执行时会对其进行检查和“更正”,但在网络打包/解包期间不支持省略双引号


无论如何,根据我上面链接的Docker文档,您可以尝试直接在Docker文件中添加公钥的值,您可以像通过控制台那样指定环境变量:使用Dockerfile将允许您以更舒适的方式管理公钥的值。

如果环境变量存在,则正确的设置方法是
-e AUTHORIZED_KEYS=“cat~/.ssh/id_rsa.pub”
您不需要在引号中包含`mark。如果环境变量存在,正确的设置方法是
-e AUTHORIZED\u KEYS=“cat~/.ssh/id\u rsa.pub”
您不需要在引号中包含`mark。