陈奇网络工作室

如何为Docker容器设置环境变量?

系统操作和维护

开始前

上一篇文章介绍了如何创建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。

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3