Docker 是一個開源平台,它簡化了在容器中創建、部署和管理應用程序。一個容器是一種可移植的、輕量級的、自包含的運行時環境,包含運行應用程序所需的一切。容器化的關鍵組成部分之一是管理環境
變量。環境變量是鍵值對,可用於配置容器運行時的行為。
1. 在 Dockerfile 中定義環境變量
Dockerfile 是一個包含如何構建 Docker 的指令的腳本。在 Dockerfile 中使用ENV 指令定義環境變量。
FROM node:14
ENV NODE_ENV production
ENV API_KEY abcd1234
在本例中,我們設置了 NODE_ENV 和 API_KEY,這些變量將在使用此 Dockerfile 構建的鏡像創建的任何容器中都可用。
2. 在 docker 運行中設置環境變量
您還可以在啓動容器時使用 docker run 命令設置環境變量。這裏有一個例子:
docker run -e NODE_ENV=development -e API_KEY=abcd1234 my-image:latest
在本例中,我們為 my-image:latest 創建的容器設置了 NODE_ENV 和 API_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_ENV 和 API_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']