修改docker容器的时间&&时区(事实证明centos&ubuntu系统都适用)
前言
全球不同的地方有不同的时区划分,所有了以全球标准时间(UTC)和本地时间(localtime)区别。一般我们都设置成本地时间,方便操作与统计。机器里有两个时钟,硬件时钟从根本上讲是CMOS时钟,而系统时钟是由内核维护的。
查看docker容器时间及时区
date 或者data -R
时间时区修改
第一种修改方法:使用命令修改(使用root确保有权限),根据提示一步步修改就可以了
tzselect
第二种方法:直接复制时区文件,覆盖/etc/localtime
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
如果没有这个文件则需要从宿主机中拷贝到容器里
(非docker操作)
手动修改时间
date -s MM/DD/YY //修改日期
date -s hh:mm:ss //修改时间
在修改时间以后,修改硬件CMOS的时间
# hwclock --systohc //非常重要,如果没有这一步的话,后面时间还是不准
方法二:使用命令 timedatectl
# timedatectl set-time "xxxx年-xx月-xx日 时xx:xx分:秒xx" ##设定系统时间
# timedatectl list-timezones ##显示系统的所有时区
# timedatectl set-timezone "Asia/Shanghai" ##设定系统时区,设定世界地点为上海
# timedatectl status #发现CST和utc时间不同
Local time: Fri 2020-04-10 10:48:41 CST ##本地时间
Universal time: Fri 2020-04-10 02:48:41 UTC ##国际标准时间
RTC time: Fri 2020-04-10 02:48:42 ##硬件时间
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
方法三:安装ntp时间同步服务
# 安装ntp服务(centos下)
yum install ntp ntpdate -y
# 开启ntp服务
systemctl start ntpdate
# 同步时间服务器时间
ntpdate time.windows.com
# ntp只会同步系统时间而不会同步硬件时间,若服务器重启则系统时间会失效,依旧从硬件时间开始计时,所以使用ntp同步系统时间后需要将系统时间同步到硬件时间
hwclock -w