docker容器的设置本地时间(/etc/localtime)和本地时区(/etc/timezone)

48 篇文章 2 订阅

本地时区的修改

一般情况下,我们启动docker容器时指定了环境变量:-e TZ:=Asia/Shanghai,容器内的时区就会变成东八区,某些软件则会读取该环境变量作为其使用的时区,该环境变量相当于"残缺版"的命令:

echo 'Asia/Shanghai' >/etc/timezone

为什么说残缺版,继续往下看。

上述环境变量生效后,随之而变的还有本地时间(/etc/localtime),本地时间会根据时区自动调整,使用命令:date查看:

root@75e7c81b599d:/# date
Tue Aug  8 10:12:05 CST 2023

本地时间的修改(一般不用设置,设置默认时区即可)

通过ll /etc/localtime查看本地时间的指向,发现本地时间还是指向的默认的UTC:

root@75e7c81b599d:/# ll /etc/localtime
lrwxrwxrwx 1 root root 27 Dec 20  2021 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC

但是为什么本地时间变成了对的时间呢?原因是上面已经正确设置了时区,date命令会自动根据设置的时区进行调节。

root@75e7c81b599d:/# date -R
Tue, 08 Aug 2023 10:37:35 +0800

那么如果我们不设置正确的时区,默认会使用UTC时区,那么如何在不设定时区的情况下让本地时间变的准确呢?
使用软链重新指向即可

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

存在的问题

在linux中,有一些程序会自己计算时间(比如cron),这些程序直接获取本地时区,并不会读取你设置的环境变量,这时必须得修正本机的时区,所以执行下列设置,然后重启具体的服务。

echo 'Asia/Shanghai' >/etc/timezone

dockerfile永久改动

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L-960

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值