linux - 传递环境变量不适用于 Docker
问题描述
我正在学习如何将环境变量传递给 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'
这里的运行命令给出了这个,
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什么也没给
任何想法,这里发生了什么?为什么没有传递环境变量?
解决方案
好,我知道了。而不是以下,
docker run -d enviro -e USERNAME='david'
一定是这样的
docker run -d -e USERNAME='david' enviro
不知道,为什么 docker 需要在图像名称之前使用环境变量。
推荐阅读
- reactjs - 使用 react Slate/Plate 强制执行第一行字符限制
- python - os.path.exists 对某些路径返回 false
- python - 将 FastAPI 和应用程序与多个选项相结合
- python - 根据与特定点的距离对 3D 边界框进行排序
- javascript - 如何将元组的python列表转换为JavaScript中的数组?
- python - TypeError:gmw() 得到了一个意外的关键字参数“dtype”
- sql - Postgresql - 一年中一周的 Unix 时间戳
- javascript - 使用 JavaScript 对商店产品进行排序
- server - IIS 10.0.14393.0 窗口服务器 2016,删除服务器标头“Microsoft-HTTPAPI/2.0”
- sql - INT 数据类型值在 PostgreSQL 12 中接受 CHAR 数据类型