容器時間和主機時間不一樣步

序言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上進行了測試。


圖片

相關文章
相關標籤/搜索