如何确认发送到docker run命令的环境variables是否被接收?

我遇到了一个问题,我将一个环境variables传递给docker run命令,但生成的容器使用默认值而不是传递的值。

这是我的Dockerfile:

 FROM alpine ENV MY_ENV="default value" ENTRYPOINT echo "MY_ENV: " $MY_ENV 

以下是我构build和运行时发生的情况:

 $ docker build -t temp . Sending build context to Docker daemon 54.78kB Step 1/3 : FROM alpine ---> 37eec16f1872 Step 2/3 : ENV MY_ENV "default value" ---> Using cache ---> 8ba6d797b765 Step 3/3 : ENTRYPOINT echo "MY_ENV: " $MY_ENV ---> Using cache ---> 6fb9530b10b2 Successfully built 6fb9530b10b2 Successfully tagged temp:latest $ docker run temp -e MY_ENV=test MY_ENV: default value 

正如你所看到的,输出是“默认值”,但我不希望看到“testing”?

如果我运行docker inspect容器,它显示input已收到。

下面是configuration下docker inspect的Env和Cmd值:

 "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "MY_ENV=default value" ], "Cmd": [ "-e", "MY_ENV=test" ] 

我确定这很简单。 我错过了什么?

将你的运行命令改为docker run -e MY_ENV=test temp

我在本地进行了testing,似乎将其视为一个参数,而不是一个选项(所以忽略它)