Docker设置获取环境变量

在Dockerfile中设置环境变量

在构建Docker镜像时,可以在Dockerfile中使用ENV指令来设置环境变量

ENV MY_ENV_VAR="ABC123"

ENV指令用于设置环境变量,语法为

ENV

ENV =

使用docker run命令设置环境变量

使用docker run命令在运行容器时设置环境变量。

docker run -e MY_ENV_VAR="ABC123" image_name

-e、--env选项用于设置环境变量,语法为

-e =

docker run --env-file path/to/env-file image_name

 --env-file选项用于设置环境变量文件,格式如下:

DB_HOST=localhost

DB_PORT=3306

DB_USER=root

DB_PASSWORD=password

进入容器内部添加环境变量

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

在Docker Compose文件中设置环境变量

可以在docker-compose.yml中设置环境变量

version: '3.3'
services:
  mycontainer:
    image: my-image
    container_name: my-container
    restart: always
    environment:
      - MY_ENV_VAR=ABC123

查看环境变量

使用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"
            ],

使用docker exec命令查看

docker exec 容器ID env

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 

在容器内使用环境变量

设置完环境变量后,可以在容器内部使用它们:

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")

你可能感兴趣的:(Docker,docker)