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

当我尝试使用其中一个创建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文档后,需要在双引号中包含ENV变量
https://docs.docker.com/reference/run/#env-environment-variables

这可能是为什么cat命令的输出爆炸后给出“太多值无法解压”的原因。
可能在本地执行时会对其进行检查和“更正”,但在网络打包/拆包期间不支持省略双引号。

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

https://stackoverflow.com/questions/32290316/

相关文章:

hadoop - 如何在本地获取此输出

hadoop - 如何在长度大于VARCHAR(32k)的BIGSQL表中存储字符串数据

hadoop - 如何在Java UDF中加载H20训练有素的模型

networking - 从 docker 容器运行 docker build 时主机名解析失败

mongodb - 从BSON文件创建Hive表时,列值变为NULL

hadoop - hadoop fs -mkdir:没有这样的目录

docker - 使用RUN的结果来设置变量

python - 如何在pySpark中从字符串数据框中有效替换多个正则表达式模式的所有实例?

hadoop - Hive Joins可以在Apache Nifi中实现吗?

docker - 在Bluemix容器上安装卷并在它们之间共享不起作用