系统操作和维护
开始前
上一篇文章介绍了如何创建docker容器。本文(2017-08)介绍了如何设置docker容器的环境变量,比如示例中的时区环境变量。需要注意的是,容器的环境变量需要在创建容器时指定,不能在容器运行时添加或更改。
问题描述
发现docker创建的tomcat容器的日志时区不正确(时差8小时)。即使挂载了host /etc/localtime文件(主机时区正确),虽然容器的操作系统时间是正常的,但是tomcat的日志时区仍然是错误的,这给容器日志的分析带来了麻烦。我们的目标是为创建的tomcat容器设置正确的时区。
环境描述
软件发布
Tomcat:9在Docker 1.13.1上
主机时区文件
tail -n1 /etc/localtime
科技委第八届会议
用于创建容器的命令
docker run-tid-name test-p 10080:8080 \ \ \
-v /usr/local/tomcat/logs \\\
-v/etc/local time:/etc/local time \ \ \ \
-label aliyun . logs . catalina=stdout \ \ \ \
-label aliyun . logs . access=/usr/local/Tomcat/logs/localhost _ access _ log。*.txt \\\\
雄猫:9
如果您不熟悉docker命令的参数,可以使用help帮助,或者参考本文来创建Docker容器。
日志时区
码头日志-尾部1测试
10-Aug-2017 06:43:48.390 INFO[Thread-5]org . Apache . coyote . abstract protocol . destroy销毁协议处理程序[ajp-nio-8009]
注意:日志时间06:43:48不正确。
解决办法
创建容器时指定TZ时区环境变量,例如,将时区设置为亚洲/重庆。
docker run-tid-name new-p 10080:8080 \ \ \ \
-v /usr/local/tomcat/logs \\\
-e TZ=亚洲/重庆\\\\
-label aliyun . logs . catalina=stdout \ \ \ \
-label aliyun . logs . access=/usr/local/Tomcat/logs/localhost _ access _ log。*.txt \\\\
雄猫:9
再次验证容器时区。
码头日志-尾1新
INFO[main]org . Apache . Catalina . core . standardservice . start内部启动服务[Catalina]
注意:14:44:51的日志时间是正确的。
命令帮助
可以多次指定run subcommand -e参数设置容器的环境变量,也可以从文件中读取多个环境变量。
docker run-help | grep-I \ \ \ ' \ \ \ \-env \ \ \ '
-e,- env list设置环境变量
-env-在环境变量文件中读取的文件列表
参考文章
如何为Docker容器设置环境变量?
多克k8s群[703906133]
更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码代理官网:www.chenqinet.cn。