我正在学习如何将环境变量传递给Docker容器。尽管以下工作正常,
Docker文件
FROM ubuntu
ENV USERNAME='david'
CMD echo "username = $USERNAME"
Run Code Online (Sandbox Code Playgroud)
生成并运行命令
docker build . -t enviro
docker run -d enviro
Run Code Online (Sandbox Code Playgroud)
docker ps -a给
2a3a69aa7868 enviro "/bin/sh -c 'echo \"u…"
Run Code Online (Sandbox Code Playgroud)
码头工人日志2a3a69aa7868给出
username = david
Run Code Online (Sandbox Code Playgroud)
以下不起作用
Docker文件
FROM ubuntu
CMD echo "username = $USERNAME"
Run Code Online (Sandbox Code Playgroud)
生成并运行命令
docker build . -t enviro
docker run -d enviro -e USERNAME='david'
Run Code Online (Sandbox Code Playgroud)
在这里,运行命令给出了这一点,
docker: Error response from daemon: OCI runtime create failed:
container_linux.go:348: starting container process caused "exec: \"-e\":
executable file not found in $PATH": unknown.
Run Code Online (Sandbox Code Playgroud)
而docker ps -a给
249cb045c26a enviro "-e USERNAME=david"
Run Code Online (Sandbox Code Playgroud)
码头工人日志249cb045c26a什么也没有给出
任何想法,这是怎么回事?为什么不传递环境变量?
好,我知道了。代替以下内容,
docker run -d enviro -e USERNAME='david'
Run Code Online (Sandbox Code Playgroud)
一定是这样
docker run -d -e USERNAME='david' enviro
Run Code Online (Sandbox Code Playgroud)
不知道,为什么docker为什么在映像名称之前需要环境变量。