国内最专业的IT技术学习网

UI设计

当前位置:主页 > UI设计 >

Docker中的时区问题处理

发布时间:2019/09/20标签:   时区    点击量:

原标题:Docker中的时区问题处理
配景这两天在打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情况变量设置,这个设置就是静态的,统一个镜像咱们能够在拉起的时间设置差别的值.

版权信息Copyright © 银河官网 版权所有    ICP备案编号:鲁ICP备09013610号