Docker中的时区问题处理

  发布时间:2025-11-05 08:38:16   作者:玩站小弟   我要评论
背景这两天在打docker的时候,发现自己的容器启动之后,里面date -R的输出时区是UTC,总是和北京时间差了8个小时.标准镜像时区是UTC查看/etc/localtime,发现默认指向的是Etc 。

背景

这两天在打docker的时区时候,发现自己的容器启动之后,里面date -R的输出时区是UTC,总是和北京时间差了8个小时.

标准镜像

时区是UTC

查看/etc/localtime,发现默认指向的是Etc/UTC时区.而且TZ环境变量也没有被设置.

linux中的时区问题到底是怎么处理的

实际上,我们所有关于时区处理的问题都是glibc中处理时区的问题. 这个问题最权威的文档就是glibc的官方文档,里面关于TZ环境变量的描述介绍了时区问题的云服务器提供商处理.

https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html#TZ-Variable

其中和我们相关的部分如下.

核心意思如下: 在glibc中,TZ环境变量的值是一个文件的名字,这个文件的内容描述了时区相关的信息.

如果TZ这个环境变量没有设置,那么系统会选择一个默认值,在glibc中,其默认值为/etc/localtime. 如果TZ环境变量有值,并且这个值是以/开头的,那么是一个绝对路径的文件名,否则文件名为/usr/share/zoneinfo/$TZ. /usr/share/zoneinfo目录下面有世界各地的本地时间信息,比如Asia/Shanghai.一般这个目录下面的文件是被tzdata这个包安装的.

按照这个思路,我们强制指定TZ环境变量为Asia/Shanghai,时区正确

强制修改/etc/localtime文件,时区也正确.

docker容器处理时区的方法

根据上面的描述,在docker容器中设置时区其实有两个主要的方法. 一个是免费源码下载直接进行TZ环境变量设置,另一个是不设置TZ环境变量,直接修改/etc/localtime的内容(通过软链接或者文件直接复制都可以)

这里以设置TZ环境变量为例(我自己比较喜欢这样做,感觉比修改/etc/localtime更方便).

首先,我们可以在Dockerfile里面添加ENV TZ=Asia/Shanghai,这样docker build出来的镜像默认TZ环境变量就是我们要的值了.

其次,我们也可以在容器拉起的时候使用-e TZ=Asia/Shanghai进行TZ环境变量设置,这个设置就是动态的,同一个镜像我们可以在拉起的时候设置不同的值.

总结

docker中的时区处理实际上就是glibc中的时区处理,了解了glibc中对事情的处理方法,核心是TZ环境变量和/etc/localtime文件,docker中的时期问题处理就简单了.

  • Tag:

相关文章

  • 体验SkullcandyInkd耳机的音质和舒适度(探索这款耳机的优缺点并提供全面评价)

    摘要:在今天的科技时代,耳机成为了我们日常生活中不可或缺的一部分。Skullcandy作为一个备受关注的品牌,其Inkd耳机以其音质和舒适度而备受好评。本文将对这款耳机的各个方面进行详...
    2025-11-05
  • 解读C++即将迎来的重大更新:C++20的四大新特性

    C++20C++ 编程语言标准 2020 版)将是 C++ 语言一次非常重大的更新,将为这门语言引入大量新特性。近日,C++ 开发者 Rainer Grimm 正通过一系列博客文章介绍 C++20 的
    2025-11-05
  • 惊呆了!Java程序员常犯的错竟然是这10个

    和绝大多数的程序员一样,我也非常的宅。周末很奢侈的享受就是逛一逛技术型网站,比如说 programcreek,这个小网站上有一些非常有意思的主题。比如说:Java 程序员常犯的错竟然是这 10 个,像
    2025-11-05
  • 六边形架构和分层架构的区别

    作为一个后端程序员,MVC三层架构的模式相信大家都不会陌生,三层分别从上而下排布,只能由上层调用下层。一般越往下层越通用,越上层越细节。随着某些核心业务的访问量发展,通常我们需要去进行优化的措施,比如
    2025-11-05
  • 联想老办公电脑改造教程(打造高性能工作站的关键步骤和技巧)

    摘要:随着科技的不断进步,办公电脑的配置要求也越来越高。然而,许多公司和个人仍在使用旧款联想办公电脑,面临性能低下、运行缓慢等问题。本文将介绍如何通过改造旧款联想办公电脑,延长其使用寿命...
    2025-11-05
  • 好用哭了!8大开发员必备的网页应用程序

    今天,小芯给大家整理了日常工作中经常使用的网页应用程序,号称“开发人员必备的8大网页应用程序”,希望大家能有所收获。1.Stack Exchange如果只需要选择一个基本的网页应用程序,那就是Stac
    2025-11-05

最新评论