主機、Docker時間與時區設置總結


最近在使用Docker容器時,部署java程序發現時間輸出不對,在修改問題時總結如下。

  #date [-R]                       #查看主機時間
  #timedatectl                           #查看主機時區
  #tzselect                         #選擇時區,5 選擇亞洲 > 9 選擇中國時區 -> 1選擇北京時間 -> 1 選擇Yes

修改主機時區

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime             #上海時間
rm /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime          #上海時間

更新主機時間

date                                      #查看當前系統時間
yum install -y ntpdate                    #安裝ntpdate程序
ntpdate cn.pool.ntp.org                   #更新系統時間
date                                      #再次查看當前系統時間    

網絡時間服務器

復制代碼
ntp1.aliyun.com
ntp2.aliyun.com
ntp3.aliyun.com
ntp4.aliyun.com
ntp5.aliyun.com
ntp6.aliyun.com
ntp7.aliyun.com
0.cn.pool.ntp.org
1.cn.pool.ntp.org
2.cn.pool.ntp.org
3.cn.pool.ntp.org
復制代碼

同步BIOS時鍾,強制把系統時間寫入CMOS

clock --show                         #查看硬件時間
clock -w                             #強制把系統時間寫入CMOS
clock --show                         #查看硬件時間
reboot                               #重起機器

設置系統自動同步時間

vi /etc/crontab                            #設置定時任務

00 0 1 * * ntpdate -s cn.pool.ntp.org      --每月一號同步
* */1 * * * ntpdate -s cn.pool.ntp.org     --每一個小時同步

Docker時間和宿主同步方法

  1.在run容器時添加參數掛載宿主時間配置:  -v /etc/localtime:/etc/localtime

  2.復制宿主localtime時間配置覆蓋:  docker cp /etc/localtime container_id:/etc/localtime

  3.在啟動jar包添加時區參數:  -Duser.timezone=GMT+08

Docker容器設置時區

  #docker exec -it container_id /bin/bash            #進入容器命令

  #修改時區,設置為上海時區
  ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  或者
  cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

Docker設置build參數

  ENV TZ=Asia/Shanghai
  RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

構建dockerfile鏡像.

備注:
作者:Shengming Zeng
博客:http://www.cnblogs.com/zengming/
嚴正聲明:
1.由於本博客部分資源來自互聯網,版權均歸原作者所有。轉載的目的是用於學術交流與討論學習,將不對任何資源負法律責任。
2.若無意中侵犯到您的版權利益,請來信聯系我,我會在收到信息后會盡快給予處理!
3.所有資源內容僅供學習交流之用,請勿用作商業用途,謝謝。
4.如有轉發請注明出處,來源於http://www.cnblogs.com/zengming/ ,謝謝合作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM