传递环境变量不适用于Docker
问题描述:
我正在学习如何将环境变量传递给Docker容器。虽然以下方法可以正常工作,
I am learning how to pass environment variables to Docker containers. While the following works fine,
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…"
码头工人日志2a3a69aa7868 给出
username = david
以下操作无效
The following doesn't work
Dockerfile
FROM ubuntu
CMD echo "username = $USERNAME"
构建并运行命令
docker build . -t enviro
docker run -d enviro -e USERNAME='david'
运行命令在此处给出
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日志249cb045c26a 什么也没给出
任何想法,这是怎么回事?为什么不传递环境变量?
Any idea, what is going on here? Why is the environment variable not being passed?
答
好,我明白了。
docker run -d enviro -e USERNAME='david'
必须是这样
docker run -d -e USERNAME='david' enviro
不知道为什么docker之前需要环境变量图片的名称。
No idea, why docker requires the environment variable before the image's name though.