随着现代化技术的快速发展,Docker 容器化技术在前端应用中广泛应用。在 Docker 容器中,环境变量是非常重要的一部分。环境变量可用于配置应用程序,包括数据库连接字符串、身份验证密钥或其他应用程序特定的变量。在这篇文章中,我们将详细介绍 Docker 容器内部环境变量的设置方法。
Docker 容器内部环境变量概览
在 Docker 容器中,环境变量分为两种类型:
1. 系统级环境变量
系统级环境变量是在操作系统中设置的全局环境变量。它们在容器内部可见,并且容器内的所有进程都可以访问它们。这意味着,如果您将操作系统中的环境变量映射到容器中,则所有进程都可以访问它们。
2. 容器级环境变量
容器级环境变量是在容器内部特定进程中设置的。这些变量比系统级环境变量更有针对性,可用于配置特定容器的应用程序。
在 Docker 容器内部设置环境变量
可以通过以下两种方式在 Docker 容器内部设置环境变量:
1. Dockerfile 中的 ENV 指令
可以在 Dockerfile 中使用 ENV
指令来设置环境变量。以下是一个例子:
FROM node:12-alpine ENV NODE_ENV=production
在这个例子中,我们使用了 ENV
指令来设置 NODE_ENV
这个环境变量。我们把它设置为 production
。
2. Docker run 命令行选项
可以使用 --env
或 -e
选项在 docker run
命令行中设置环境变量。以下是一个例子:
$ docker run --env NODE_ENV=production node:12-alpine
在这个例子中,我们使用了 --env
选项来设置 NODE_ENV
这个环境变量。我们把它设置为 production
。
注意,如果您想要设置多个环境变量,可以多次使用 -e
选项或使用一个 --env-file
选项指定一个文件。
在容器内部访问环境变量
在 Docker 容器内部,我们可以通过 $ENV_VAR
或 ${ENV_VAR}
语法来访问环境变量。以下是一个例子:
const NODE_ENV = process.env.NODE_ENV; console.log(`The current environment is ${NODE_ENV}`);
在这个例子中,我们访问了 NODE_ENV
这个环境变量,并在控制台中输出了它的值。
Docker Compose 中的环境变量
Docker Compose 是 Docker 容器编排工具。在 Docker Compose 中,可以使用 environment
字段来设置环境变量。以下是一个示例:
services: app: image: node:12-alpine environment: NODE_ENV: development
在这个示例中,我们使用 environment
字段来设置 NODE_ENV
这个环境变量。我们把它设置为 development
。
总结
在本文中,我们介绍了如何在 Docker 容器内部设置环境变量,以及在容器内部访问它们。我们还介绍了 Docker Compose 中的环境变量设置。环境变量将有助于为应用程序提供配置和安全的方式。记住,环境变量通常包含敏感信息,因此请确保妥善管理和保护它们。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64533e34968c7c53b07b0e49