传递环境变量不适用于Docker [英] Passing environment variables not working with Docker

查看:83
本文介绍了传递环境变量不适用于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.

这篇关于传递环境变量不适用于Docker的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆