我正在学习如何将环境变量传递给Docker容器。虽然以下工作正常,
Dockerfile
FROM ubuntu
ENV USERNAME='david'
CMD echo "username = $USERNAME"
构建&运行命令
docker build . -t enviro
docker run -d enviro
docker ps -a 给出了
2a3a69aa7868 enviro "/bin/sh -c 'echo \"u…"
docker logs 2a3a69aa7868 给出
username = david
以下不起作用
Dockerfile
FROM ubuntu
CMD echo "username = $USERNAME"
构建&运行命令
docker build . -t enviro
docker run -d enviro -e USERNAME='david'
这里的run命令给出了这个,
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.
虽然 docker ps -a 给出了
249cb045c26a enviro "-e USERNAME=david"
docker logs 249cb045c26a 不提供任何内容
任何想法,这里发生了什么?为什么环境变量没有被传递?
答案 0 :(得分:5)
好的,我明白了。而不是以下,
docker run -d enviro -e USERNAME='david'
一定是这样的
docker run -d -e USERNAME='david' enviro
不知道,为什么docker在图像名称之前需要环境变量。