如何为码头工人容器设置环境变量?

  

如何为码头工人容器设置环境变量?

  

开始之前

  

上一篇文章介绍了如何创建一个码头工人容器,本篇文章(2017 - 08)介绍<强>如何设置码头工人容器环境变量强,例如示例中的时区环境变量,需要注意的是<强>容器的环境变量需要在创建容器时指定强,容器时运行无法添加或者更改。

  

问题描述

  

发现使用码头工人创建的tomcat容器日志时区不正确(时差8小时),即使挂载了宿主机<强>/etc/localtime 强文件(宿主机时区是正确的),虽然容器的操作系统时间正常了,但是tomcat的日志时区仍然是错误的,这对容器日志分析带来麻烦,我们的目标是为创建的tomcat容器设置正确的时区。

  

环境描述

  

软件版本

  
 <代码类="语言"> Tomcat: 9>尾巴n1/etc/localtime
  CST-8  
  

创建容器使用的命令

  
 <代码类=" language-bash ">码头工人运行tid——名字测试- p 10080:8080 \
  - v/usr/local/tomcat/logs \
  - v/etc/localtime:/etc/localtime \
  ——标签aliyun.logs。卡特琳娜=stdout \
  ——标签aliyun.logs.access=/usr/地方/tomcat/日志/localhost_access_log。*。txt \
  tomcat: 9  
  

如果对码头工人命令参数不熟悉可以使用,帮助帮助,或者参考这篇文章& lt; & lt;创建一个码头工人容器在祝辞

  

日志时区

  
 <代码类=" language-bash ">码头工人,尾巴1测试日志
  
  10 - 8月- 2017年06:43:48.390信息[Thread-5] org.apache.coyote.AbstractProtocol.destroy摧毁ProtocolHandler(“美国- nio - 8009”)  
  

注意:日志时间06:43:48是不正确的。

  

解决方法

  

创建容器时指定TZ时区环境变量,例如设置时区为亚洲/重庆。

  
 <代码类=" language-bash ">码头工人运行新- p 10080:8080 \ tid——名称
  - v/usr/local/tomcat/logs \
  - e TZ=亚洲/重庆\
  ——标签aliyun.logs。卡特琳娜=stdout \
  ——标签aliyun.logs.access=/usr/地方/tomcat/日志/localhost_access_log。*。txt \
  tomcat: 9  
  

再次验证容器时区

  
 <代码类=" language-bash ">码头工人,尾巴1新日志
  10 - 8月- 2017[主要]org.apache.catalina.core.StandardService 14:44:51.736信息。startInternal开始服务(卡特琳娜) 
  

注意:日志时间<强> 14:44:51 强才是正确的。

  

命令帮助

  

运行子命令- e参数设置容器的环境变量可以指定多次,多个环境变量还可以使用读取文件的方式。

  
 <代码类=" language-bash ">码头工人运行——帮助| grep - i \ env的
  - e - env列表设置环境变量
  ——env-file列表读入一个文件的 
环境变量   

参考文章

  

如何为码头工人容器设置环境变量?

  

doker& k8群(703906133)

如何为码头工人容器设置环境变量?