开始之前
上一篇文章介绍了如何创建一个码头工人容器,本篇文章(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)