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")
相关推荐
程序员清风39 分钟前
LibreChat 实战:用 Docker 搭建可扩展的多模型对话平台
运维·docker·容器
Web3&Basketball1 小时前
从0到1落地AI Agent沙箱隔离Docker实战:踩坑全记录
运维·docker·容器·agent·容器安全·沙箱隔离
bluebonnet272 小时前
【docker】使用regctl免安装docker下载镜像
运维·docker·容器
Java开发追求者19 小时前
windows快速安装docker
windows·docker·安装·1024程序员节
骑着蜗牛撵大象32721 小时前
飞牛fnOS部署Damselfly:Compose编排、照片目录与7100固定访问
java·docker·rpc·dubbo·fnos·照片管理·damselfly
一掬净土1 天前
kubelet 报错如下:docker does not support reopening container log files
docker·云原生·kubelet·logfiles
TTATTC1 天前
为什么 Python 做 Agent 总在并发中崩溃?拆解 Blockcell 在 Rust 下的 Host-Cell 隔离与自愈状态机
docker·开源
骑着蜗牛撵大象3271 天前
N1 小盒子撑起 AI 接口中转层:New-API 接管本地 Ollama,用 Token 分发模型能力
docker·llama·1024程序员节·api网关·飞牛nas·new-api
艸肅1 天前
Docker 国内镜像源配置
linux·ubuntu·docker·1024程序员节
java_logo1 天前
Docker 部署 Bililive-go:轻松搭建多平台直播录制
docker·1024程序员节·直播录制·轩辕镜像·bililive-go·chigusa/bililive-go