容器时间和主机时间不同步

序言

    

    时间,总是宝贵的,但是,可能你生活在超前的八小时,我生活在落后的八小时,时间不统一,从而有了时间之间的差异。


    UTC和CST时间相差8个小时,宿主机上的时间是CST时间,而容器上的时间一般都是UTC时间,从而总是需要重新编译镜像来达到时间相同的目的。

    

    你生活在什么时间,生活在过去?还是生活在现在?梦中梦。。。。


    慢同步。。。慢慢同步。。。不然生活的时间跨度太大,系统会崩溃的。。。


    此文主要是解决容器时间和宿主机时间不一致,从而导致在查询日志的时候出现问题(centos7)

如何消除时间问题

1、 设置宿主机或者物理机时间

    将时区设置为上海,主要使用命令timedatectl。

    如果时间不准确,那么可以进行时间同步,前提是先安装ntpdate包

    将时间写入硬件时钟,再也不用担心时间重启之后要修改了,当然有ntp服务器来同步是最好的了。

2、编译镜像

    在使用时区的时候,一般的镜像都是使用UTC时间,从而需要重新编译镜像,从而来修改时区,如下dockerfile文件。

 [root@docker-ce elk]# docker build -t elkk . (编译镜像)

    在如上的Shanghai文件,也就是/usr/share/zoneinfo/Asia/Shanghai文件,将其拷贝到dockerfile的同一级目录即可。


3、 测试

    从上可以看到时间已经一致。


4、 脚本

    运行脚本即可进行相关的配置

[root@docker2 ~]# cat timezone.sh 

#!/usr/bin/bash


#set the system timezone  

timedatectl set-timezone Asia/Shanghai


#Synchronize time

rpm -q ntpdate &>/dev/null

if [ $? == 0 ];then

ntpdate cn.pool.ntp.org

else

yum -y install ntpdate 

ntpdate cn.pool.ntp.org

fi

#write the time to hardware clcok

hwclock -w


#check

date 



总结

    1、 主要是解决容器的时间和本地的时间不一致,从而导致日志在查看的时候,并不是真正的时间


    2、 当使用elk这种日志查看的时候,必须时间进行同步,否则在日志系统中,并不能查看对应的日志。


    3、 每个基础镜像不同,从而可能写dockerfile的写法不一样,这种目前仅仅在centos7上进行了测试。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值