千家信息网

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

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,开始之前上一篇文章介绍了如何创建一个Docker容器,本篇文章(2017-08)介绍如何设置Docker容器环境变量,例如示例中的时区环境变量,需要注意的是容器的环境变量需要在创建容器时指定,容器时运
千家信息网最后更新 2025年12月03日如何为Docker容器设置环境变量?

开始之前

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

问题描述

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

环境描述

软件版本

Tomcat:9 On Docker 1.13.1

宿主机时区文件

tail -n1 /etc/localtimeCST-8

创建容器使用的命令

docker run -tid --name test -p 10080:8080 \ -v /usr/local/tomcat/logs \ -v /etc/localtime:/etc/localtime \ --label aliyun.logs.catalina=stdout \ --label aliyun.logs.access=/usr/local/tomcat/logs/localhost_access_log.*.txt \ tomcat:9

如果对 docker命令参数不熟悉可以使用 --help 帮助,或者参考这篇文章 <<创建一个Docker容器>>

日志时区

docker logs --tail 1 test 10-Aug-2017 06:43:48.390 INFO [Thread-5] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["ajp-nio-8009"]

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

解决方法

创建容器时指定TZ时区环境变量,例如设置时区为 Asia/Chongqing 。

docker run -tid --name new -p 10080:8080 \    -v /usr/local/tomcat/logs \    -e TZ=Asia/Chongqing \    --label aliyun.logs.catalina=stdout \    --label aliyun.logs.access=/usr/local/tomcat/logs/localhost_access_log.*.txt \    tomcat:9

再次验证容器时区

docker logs --tail 1 new 10-Aug-2017 14:44:51.736 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]

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

命令帮助

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

docker run --help | grep -i '\-env'  -e, --env list        Set environment variables      --env-file list   Read in a file of environment variables

参考文章

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

doker&k8s Qun [703906133]

容器 时区 环境 变量 日志 命令 宿主 宿主机 文件 时间 参数 文章 篇文章 参考 帮助 操作系统 再次 多个 小时 方式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 自己的服务器 怎么备案 南通江苏高性能服务器代理厂家 计算机网络技术专业介绍片 一款软件开发的研究内容是啥 软件开发公司销售部工作总结 解析域名到华为香港云服务器 数据库创意模型 淘宝网用什么软件开发 戴尔服务器t340挡板怎么开 施乐700服务器系统 淘宝未连接服务器请稍等 服务器回复tcp窗口为0 全国法院第六次网络安全会议 佛山贰加壹互联网科技有限公司 数据库完整性和独立性的异同 数据库的更名和删除 ecode数据库 软件开发学出来有用吗 死亡之夜进不去服务器 实况数据库新赛季 家用nas能用华为服务器硬盘吗 5g笔记本服务器 服务器磁盘阵列怎么更换硬盘 广东优匙网络技术有限公司 学校网络安全周活动主题 网络技术 监控经营范围 株洲快速软件开发价格 京蓝科技工业互联网 小程序分销商软件开发 速达数据库查询分析器在哪
0