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

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

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

修改主機時區bash

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                               #重起機器

設置系統自動同步時間ui

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

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

Docker時間和宿主同步方法spa

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

  2.複製宿主localtime時間配置覆蓋:  docker cp /etc/localtime container_id:/etc/localtimeblog

  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/ ,謝謝合做。

相關文章
相關標籤/搜索