如何在 Docker 中设置环境变量 ?

Docker 是一个开源平台,它简化了在容器中创建、部署和管理应用程序。一个容器是一种可移植的、轻量级的、自包含的运行时环境,包含运行应用程序所需的一切。容器化的关键组成部分之一是管理环境

变量。环境变量是键值对,可用于配置容器运行时的行为。

1. 在 Dockerfile 中定义环境变量

Dockerfile 是一个包含如何构建 Docker 的指令的脚本。在 Dockerfile 中使用ENV 指令定义环境变量。

复制代码
FROM node:14
ENV NODE_ENV production
ENV API_KEY abcd1234

在本例中,我们设置了 NODE_ENVAPI_KEY,这些变量将在使用此 Dockerfile 构建的镜像创建的任何容器中都可用。

2. 在 docker 运行中设置环境变量

您还可以在启动容器时使用 docker run 命令设置环境变量。这里有一个例子:

复制代码
docker run -e NODE_ENV=development -e API_KEY=abcd1234 my-image:latest

在本例中,我们为 my-image:latest 创建的容器设置了 NODE_ENVAPI_KEY 环境变量,这些变量只能为这个特定的容器设置。

3. 在 Docker Compose 中使用环境变量

Docker Compose 是一个管理多容器 Docker 应用程序的强大工具,您可以在 docker-compose.yml 中定义环境变量。这里有一个例子:

复制代码
version: "3"
services:
app:
image: my-image:latest
environment:

- NODE_ENV=production
- API_KEY=abcd1234
  ...

在本例中,我们设置 NODE_ENVAPI_KEY 环境变量应用服务,这些变量将在所有为此创建的服务容器中可用。

4. 使用环境变量文件

您可以将环境变量存储在文件中,并在容器创建期间使用它。这对于管理敏感或复杂的信息非常有用

配置。创建一个名为 .env 的文件,包含以下内容:

复制代码
NODE_ENV=production
API_KEY=abcd1234

要在启动容器时使用该文件,请在 docker run 命令中使用 -env-file 选项:

复制代码
docker run --env-file .env my-image:latest

对于 Docker Compose,你可以在 docker-compose.yml 中指定环境文件。

复制代码
version: "3"
services:
app:
image: my-image:latest
env_file: .env
...

5. 应用程序中访问环境变量

要在应用程序中访问环境变量,请使用适当的方法。

在 Node.js 中,可以这样访问 NODE_ENV 变量:

复制代码
const nodeEnv = process.env.NODE_ENV;

在 Python 中,你可以使用 os 模块:

复制代码
import os
node_env = os.environ['NODE_ENV']

我的开源项目

相关推荐
学不完的8 分钟前
Docker数据卷管理及优化
运维·docker·容器·eureka
hansaes3 小时前
第一章:容器到底是什么
docker
Sst的头号粉丝4 小时前
Docker——compose
运维·docker·容器
ZZZKKKRTSAE5 小时前
rhel9快速上手Docker
运维·docker·容器
筱顾大牛6 小时前
Docker安装教程(加汉化!超详细!!!)
运维·docker·容器
九成宫6 小时前
安装和配置Docker教程(装在其他盘)
运维·docker·容器
janthinasnail6 小时前
使用Docker安装nanobot(超轻量个人AI助手)
docker·容器
恋红尘8 小时前
K8S 配置与调度-叩丁狼
云原生·容器·kubernetes
喵喵爱自由8 小时前
Docker容器共享宿主机-安全网络
网络·安全·docker
杨浦老苏8 小时前
搜索引擎聚合器Degoog
搜索引擎·docker·群晖