[docker] 淺談Docker:Docker容器中環境變量的應用

0 序

1 設置環境變量

1.1 場景:在Dockerfile中設置環境變量

在構建Docker鏡像時,可以在Dockerfile中使用ENV指令來設置環境變量

ENV MY_ENV_VAR="ABC123"
  • ENV指令用於設置環境變量,語法爲
ENV <key> <value>

ENV <key>=<value>

1.2 場景:使用docker run命令設置環境變量

使用docker run命令在運行容器時設置環境變量。

docker run -e MY_ENV_VAR="ABC123" image_name
  • -e--env選項用於設置環境變量,語法爲
-e <key>=<value>
docker run --env-file path/to/env-file image_name
  • --env-file選項用於設置環境變量文件。

格式如下:

DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=password

1.3 場景:進入容器內部添加環境變量

docker exec -it {容器ID} /bin/bash

可以在以下文件中添加變量:

~/.bashrc
~/.profile
~/.bash_profile
/etc/profile
/etc/environment
/etc/bash.bashrc

在文件末尾追加:

export MY_ENV_VAR=ABC123

添加完後執行下面命令生效

source 修改的文件

使用echo查看

echo $MY_ENV_VAR

1.4 場景:在Docker Compose文件中設置環境變量

  • 可以在docker-compose.yml中設置環境變量
version: '3.3'
services:
  mycontainer:
    image: my-image
    container_name: my-container
    restart: always
    environment:
      - MY_ENV_VAR=ABC123

2 查看環境變量

  • 方式1:使用docker inspect命令查看
docker inspect 容器ID

"Env": [
"MY_ENV_VAR=ABC123",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NGINX_VERSION=1.25.3",
"PKG_RELEASE=1",
"NJS_VERSION=0.8.2"
],


+ 方式2:使用`docker exec`命令查看
``` shell
docker exec 容器ID env

out :

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=decb784b8420
MY_ENV_VAR=ABC123
NGINX_VERSION=1.25.3
PKG_RELEASE=1
NJS_VERSION=0.8.2
HOME=/root

3 使用環境變量(在容器內)

設置完環境變量後,可以在容器內部使用它們:

  • PYTHON:
import os

env_var = os.environ.get('MY_ENV_VAR')
  • JavaScript:
const envVar = process.env.MY_ENV_VAR
  • VUE2:
const envVar = process.env["MY_ENV_VAR"]
  • VUE3:
const envVar = import.meta.env["MY_ENV_VAR"]
  • Java
String envVar = System.getenv("MY_ENV_VAR")

X 參考文獻

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章