Docker 运行 环境变量不能用单引号?

Docker run env variable does not work with single quotes?

我是运行以下命令:

docker run -e 'SOME_ENV_VARIABLE=somevalue' somecommand

并且这并没有将env变量传递给somecommand(注意:SOME_ENV_VARIABLEsomevalue没有未转义的单引号,它们分别是大写蛇形和小写没有特殊字符。

后来,我试过:

docker run -e "SOME_ENV_VARIABLE=somevalue" somecommand

这在某种程度上起作用了(注意双引号)。

这是为什么?我看过带单引号的文档。

我在 Windows 上试过这个。

报价由您的 shell 处理 - 因为您在 windows,即 cmd.exe。而且,据我了解,由于 cmd.exe does not handle single quotes,它会将带有引号的参数传递给 docker

它会在 Linux 上工作(通常有 bash shell),这是许多人会在 docker 上使用的环境,因此它存在于大量文档中的原因。