[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 参考文献
本文作者:
千千寰宇
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!