如果我将一个环境变量作为参数传递给容器内部docker run
,我的shell会对其进行求值.例如:
我希望我的容器打印出的值$FOO
是bar
.这些都不会起作用:
# Prints blank line
$ docker run -e FOO=bar ubuntu echo $FOO
# Prints '$FOO'
$ docker run -r FOO=bar ubuntu echo \$FOO
Run Code Online (Sandbox Code Playgroud)
如果你echo
在shell中运行它是有效的:
$ sudo docker run --rm -e FOO=bar ubuntu bash -c 'echo $FOO'
bar
Run Code Online (Sandbox Code Playgroud)
这是因为echo
是一个command(/bin/echo
),但它是执行变量替换的shell.
归档时间: |
|
查看次数: |
6506 次 |
最近记录: |