Docker设置获取环境变量

在Dockerfile中设置环境变量

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

bash 复制代码
ENV MY_ENV_VAR="ABC123"

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

ENV <key> <value>

ENV <key>=<value>

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

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

bash 复制代码
docker run -e MY_ENV_VAR="ABC123" image_name

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

-e <key>=<value>

bash 复制代码
docker run --env-file path/to/env-file image_name

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

DB_HOST=localhost

DB_PORT=3306

DB_USER=root

DB_PASSWORD=password

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

bash 复制代码
docker exec -it 容器ID /bin/bash

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

~/.bashrc

~/.profile

~/.bash_profile

/etc/profile

/etc/environment

/etc/bash.bashrc

在文件末尾追加:

bash 复制代码
export MY_ENV_VAR=ABC123

添加完后执行下面命令生效

bash 复制代码
source 修改的文件

使用echo查看

bash 复制代码
echo $MY_ENV_VAR

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

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

bash 复制代码
version: '3.3'
services:
  mycontainer:
    image: my-image
    container_name: my-container
    restart: always
    environment:
      - MY_ENV_VAR=ABC123

查看环境变量

使用docker inspect命令查看

bash 复制代码
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命令查看

bash 复制代码
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:

python 复制代码
import os

env_var = os.environ.get('MY_ENV_VAR')

JavaScript:

javascript 复制代码
const envVar = process.env.MY_ENV_VAR

VUE2:

javascript 复制代码
const envVar = process.env["MY_ENV_VAR"]

VUE3:

javascript 复制代码
const envVar = import.meta.env["MY_ENV_VAR"]

Java:

java 复制代码
String envVar = System.getenv("MY_ENV_VAR")
相关推荐
发愤图强的羔羊14 分钟前
Docker 搭建 SVN 服务器
docker
为了摸鱼而战19 分钟前
Dockerfile知识点梳理,你要搞懂的都在这
docker
Clownseven1 小时前
Docker+Nginx+Node.js实战教程:从零搭建高可用的前后端分离项目
nginx·docker·node.js
__lll_1 天前
手把手教你用 Docker 部署 Vue 项目(含国内镜像加速 + 踩坑指南)
docker
程思扬1 天前
Nextcloud容器化部署革新:Docker+Cpolar构建高效私有云远程访问新架构
docker·容器·架构
豆芽脚脚1 天前
docker compose再阿里云上无法使用的问题
阿里云·docker·容器
十行代码九行报错1 天前
Docker基础学习笔记
笔记·学习·docker
Agome992 天前
Docker之自定义jkd镜像上传阿里云
阿里云·docker·容器
无能百分百2 天前
阿里云服务器ECS安装Docker(CentOS 7.x)
docker
天上掉下来个程小白2 天前
Docker-14.项目部署-DockerCompose
运维·docker·微服务·容器