如果我将一个环境变量作为参数传递给容器内部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 次 |
| 最近记录: |