解決 docker 容器時間與本地時間不一致


解決 docker 容器時間與本地時間不一致

第一種方法:啟動時進行映射

運行 docker run 添加 -v /etc/localtime:/etc/localtime 選項,如下:
docker run -d -p 8080:80 -v /etc/localtime:/etc/localtime nginx
重點就是: -v /etc/localtime:/etc/localtime:ro

第二種:復制時區信息到容器

  • 如果本機時區正確直接:
docker cp /etc/localtime nginx:/etc/localtime
docker cp /etc/localtime [容器ID或名字]:/etc/localtime
  • 如果本機時區不正確:
docker cp /usr/share/zoneinfo/Asia/Shanghai nginx:/etc/localtime

自己習得心得

  • 進入容器
root@server105:~# docker exec -it Open_APIser /bin/bash
  • 查看容器內時間
root@4fc9ec0a5fae:/APIServer# date
Thu Feb  4 06:08:12 UTC 2021         # 關鍵字UTC
  • 查找關鍵字
root@4fc9ec0a5fae:/APIServer# find / -name UTC     
/usr/local/lib/python3.8/dist-packages/pytz/zoneinfo/Etc/UTC
/usr/local/lib/python3.8/dist-packages/pytz/zoneinfo/UTC
  • 復制路徑查看目錄下內容
root@4fc9ec0a5fae:/APIServer# ls /usr/local/lib/python3.8/dist-packages/pytz/zoneinfo/Etc/   
GMT    GMT+10  GMT+2  GMT+5  GMT+8  GMT-1   GMT-12  GMT-2  GMT-5  GMT-8  Greenwich  Universal
GMT+0  GMT+11  GMT+3  GMT+6  GMT+9  GMT-10  GMT-13  GMT-3  GMT-6  GMT-9  UCT        Zulu
GMT+1  GMT+12  GMT+4  GMT+7  GMT-0  GMT-11  GMT-14  GMT-4  GMT-7  GMT0   UTC
root@4fc9ec0a5fae:/APIServer# ls /usr/local/lib/python3.8/dist-packages/pytz/zoneinfo/     # 找到關鍵Asia(亞洲)
Africa      CET      Egypt    GMT+0      Iran       MST7MDT  Poland     UTC          zone.tab
America     CST6CDT  Eire     GMT-0      Israel     Mexico   Portugal   Universal    zone1970.tab
Antarctica  Canada   Etc      GMT0       Jamaica    NZ       ROC        W-SU
Arctic      Chile    Europe   Greenwich  Japan      NZ-CHAT  ROK        WET
Asia        Cuba     Factory  HST        Kwajalein  Navajo   Singapore  Zulu
Atlantic    EET      GB       Hongkong   Libya      PRC      Turkey     iso3166.tab
Australia   EST      GB-Eire  Iceland    MET        PST8PDT  UCT        leapseconds
Brazil      EST5EDT  GMT      Indian     MST        Pacific  US         tzdata.zi
  • 找到上海時區
root@4fc9ec0a5fae:/APIServer# ls /usr/local/lib/python3.8/dist-packages/pytz/zoneinfo/Asia/Shanghai 
  • 將上海時區文件創建軟鏈接到/etc/目錄下
root@4fc9ec0a5fae:/APIServer# ln -s /usr/local/lib/python3.8/dist-packages/pytz/zoneinfo/Asia/Shanghai /etc/localtime
  • 再次查看時間
root@4fc9ec0a5fae:/APIServer# date
Thu Feb  4 14:09:44 CST 2021        # 發現時間已經更新

啟動時就指定參數

  • 啟動命令中加參數
[root@localhost node_test]# docker run -itd --name test02 -e "TZ=Asia/Shanghai" node:latest
  • 查看結果
[root@localhost node_test]# docker exec -it test02  date
Tue Jun  8 11:45:53 CST 2021


免責聲明!

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



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