如何查看Docker容器环境变量,如何向容器传递环境变量

开发 前端
了解Docker容器的运行环境非常重要,我们把应用放在容器里执行,环境变量会直接影响程序的执行效果。所以我们要知道容器内部的环境变量,也要知道如何改变这些环境变量。

 1 前言

了解Docker容器的运行环境非常重要,我们把应用放在容器里执行,环境变量会直接影响程序的执行效果。所以我们要知道容器内部的环境变量,也要知道如何改变这些环境变量。

[[336335]]

2 查看环境变量

2.1 方式一:docker inspect

通过docker inspect命令不仅能查看环境变量,还能查看容器其它相关信息,非常丰富,以Json格式输出。

 

  1. $ docker inspect centos 

截取片段来看看:

 

如何查看Docker容器环境变量,如何向容器传递环境变量

 

可读性还可以,但也不算很高,可以通过grep命令过滤一下:

 

  1. $ docker inspect centos | grep SERVER 
  2.                 "SERVER_PORT=80"

或者可以解析一下Json文本:

  1. $ docker inspect -f '{{range $index, $value := .Config.Env}}{{println $value}}{{end}}' centos 
  2. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 

2.2 方式二:doecker exec env

这种方式获取的环境变量就跟我们平时获取linux环境变量是一样的了。只是在容器跑了个env命令而已。如下:

 

  1. $ docker exec centos env 
  2. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
  3. HOSTNAME=f8b489603f31 
  4. HOME=/root 

3 设置环境变量

3.1 方式一:打包设置dockerfile

在通过Dockerfile打包镜像的时候可以配置环境变量:

 

  1. ENV SERVER_PORT 80 
  2. ENV APP_NAME pkslow 

3.2 方式二:启动设置docker run --env

使用--env和-e是一样效果的,示例如下:

 

  1. $ docker run -itd --name=centos -e SERVER_PORT=80 --env APP_NAME=pkslow centos:7 
  2. b3d42726ca6cdddd7ae09d70e720d6db94ff030617c7ba5f58374ec43f8e8d68 
  3.  
  4. $ docker exec centos env 
  5. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
  6. HOSTNAME=b3d42726ca6c 
  7. SERVER_PORT=80 
  8. APP_NAME=pkslow 
  9. HOME=/root 

可以使用宿主环境变量,不用再给出值,如下传递宿主的HISTSIZE:

 

  1. $ docker run -itd --name=centos -e SERVER_PORT=80 --env APP_NAME=pkslow -e HISTSIZE centos:7 
  2. f8b489603f31779cdae88c77fb446aac80d61f41922a79128d6d26ee6b70a091 
  3.  
  4. $ docker exec centos env 
  5. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
  6. HOSTNAME=f8b489603f31 
  7. SERVER_PORT=80 
  8. APP_NAME=pkslow 
  9. HISTSIZE=1000000 
  10. HOME=/root 

3.3 方式三:启动时加载文件docker run --env-file

先把配置信息放在文件env.list里:

 

  1. $ cat env.list  
  2. VAR1=www 
  3. VAR2=pkslow.com 
  4. VAR3=www.pkslow.com 

启动容器时传入文件:

 

  1. $ docker run -itd --name=centos --env-file env.list centos:7 
  2. 1ef776e2ca2e4d3f8cdb816d3a059206fc9381db58d7290ef69301472f9b4186 
  3.  
  4. $ docker exec centos env 
  5. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
  6. HOSTNAME=1ef776e2ca2e 
  7. VAR1=www 
  8. VAR2=pkslow.com 
  9. VAR3=www.pkslow.com 
  10. HOME=/root 

如果想把宿主上的所有环境变量都传入到容器里,可以这样操作:

 

  1. $ env > env.list 
  2. $ docker run -itd --name=centos --env-file env.list centos:7 

4 总结

本文介绍了多种查看和设置Docker容器环境的方法,可以根据自己的需求使用。

责任编辑:华轩 来源: 今日头条
相关推荐

2022-04-27 08:19:53

Docker容器Linux

2023-12-12 13:22:00

LinuxDocker容器

2022-10-14 13:33:35

2019-05-30 10:20:10

Linux环境变量命令

2010-10-11 09:41:23

MySQL环境变量

2021-03-04 23:11:59

环境变量Python

2020-08-17 07:38:47

Linux系统

2023-11-01 13:40:25

GolangGo

2021-02-15 15:52:27

Linux环境变量命令

2012-09-18 01:22:33

Java环境变量Classpath

2010-06-07 11:33:11

Linux查看环境变量

2017-03-07 19:30:54

Windows 7Windowsjava

2009-06-15 16:28:30

JAVA环境变量

2009-10-21 12:58:18

2010-10-11 09:25:31

MySQL环境变量

2011-12-21 10:46:17

Java

2019-09-09 09:02:04

Linux脚本语言文本编辑器

2009-07-07 13:44:35

JDK环境变量设置

2010-04-21 16:58:51

Unix环境变量

2011-05-31 13:41:50

Android 环境变量
点赞
收藏

51CTO技术栈公众号