如果我将在容器内部设置的环境变量作为docker run的参数传递,我的shell会对其进行求值.例如:
我希望我的容器打印$FOO的值,这是吧.这些都不会起作用:
# Prints blank line
$docker run -e FOO=bar ubuntu echo $FOO
# Prints '$FOO'
$docker run -r FOO=bar ubuntu echo \$FOO
最佳答案
如果在shell中运行echo,它可以工作:
$sudo docker run --rm -e FOO=bar ubuntu bash -c 'echo $FOO'
bar
这是因为echo是一个命令(/ bin / echo),但它是执行变量替换的shell.