📜  传递环境变量 docker (1)

📅  最后修改于: 2023-12-03 15:22:06.185000             🧑  作者: Mango

传递环境变量 Docker

在使用Docker容器的时候,我们经常需要传递一些环境变量到容器内部,以便于程序能够正确地运行。本文将介绍如何在Docker容器中传递环境变量。

容器中传递环境变量的几种方式
1. 使用Dockerfile

使用Dockerfile可以在构建镜像的时候传递环境变量。在Dockerfile中可以通过 ENV 命令来设置环境变量。例如:

FROM node:14
ENV NODE_ENV=production

使用 docker build 命令构建镜像后,所有基于该镜像启动的容器都会自动设置 NODE_ENV 环境变量为 production。在应用程序中可以通过 process.env.NODE_ENV 访问该环境变量。

2. 使用docker run命令

使用 docker run 命令时可以使用 --env-e 标志来传递环境变量。例如:

docker run --env NODE_ENV=production myapp

这样在容器内部就会设置 NODE_ENV 环境变量为 production

3. 使用docker-compose文件

在docker-compose文件中可以使用 environment 关键字来设置容器的环境变量。例如:

version: '3'
services:
  myapp:
    image: node:14
    environment:
      NODE_ENV: production
4. 实现机密信息

在一些情况下,我们需要在应用程序中使用机密信息,例如数据库密码等。为了保证机密信息不泄露,我们需要使用一种安全的方式来传递这些信息。

Docker提供了 --env-file 标志来从文件中读取环境变量。例如:

docker run --env-file ./env.list myapp

env.list 文件中包含了环境变量的键值对,例如:

DB_PASSWORD=mysecretpassword

在容器内部可以通过 process.env.DB_PASSWORD 访问该环境变量。

结论

在Docker容器中传递环境变量有多种方式,可以根据实际情况选择最合适的方法。在传递机密信息时,需要采用安全的方式来保证信息不泄露。