容器时间和主机时间不一样步

序言docker

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


图片

    UTC和CST时间相差8个小时,宿主机上的时间是CST时间,而容器上的时间通常都是UTC时间,从而老是须要从新编译镜像来达到时间相同的目的。
bash

    

    你生活在什么时间,生活在过去?仍是生活在如今?梦中梦。。。。
服务器


    慢同步。。。慢慢同步。。。否则生活的时间跨度太大,系统会崩溃的。。。
app


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

如何消除时间问题测试

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

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

图片

    若是时间不许确,那么能够进行时间同步,前提是先安装ntpdate包
spa

图片

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

图片

二、编译镜像

    在使用时区的时候,通常的镜像都是使用UTC时间,从而须要从新编译镜像,从而来修改时区,以下dockerfile文件。

图片

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

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


三、 测试

图片

    从上能够看到时间已经一致。


四、 脚本

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

[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 


图片


总结

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


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


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


图片

相关文章
相关标签/搜索