如何在docker run命令中使用环境variables?

如果我将容器内设置的环境variables作为parameter passing给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 

如果你在shell中运行echo ,它会起作用:

 $ sudo docker run --rm -e FOO=bar ubuntu bash -c 'echo $FOO' bar 

这是因为echo是一个命令( /bin/echo ),但它是执行variablesreplace的shell。