docker修改容器gogs時區時間


問題描述:

公司內部搭建了一個gogs-git,是用docker部署的,但是發現提交的代碼什么的時間跟服務器時間不一致

提交上去的世界是UTC時間不是中國的時間CST,相當於慢了8個小時

1、docker容器內的時區是UTC 
2、服務器的時區是CTS

 

解決方法:

 一開始以為是gogs配置文件問題,最好發現原來是docker容器的時間問題

gogs服務器時間: [root@localhost ~]# date Fri Oct 19 16:19:19 CST 2018 docker容器的時間: [root@localhost lib]# docker exec -ti 13da3c3f2488 /bin/bash bash-4.3# date Fri Oct 19 07:16:49 UTC 2018 兩者相差了8個小時: gogs服務器采用了CST時區,CST應該是指(China Shanghai Time,東八區時間) docker容器采用了UTC時區,UTC應該是指(Coordinated Universal Time,標准時間)

統一時間兩種方法:
1、復制主機的localtime:
[root@localhost lib]# docker cp /etc/localtime 13da3c3f2488:/etc/


然后再登陸docker容器,查看時間,發現時間已經跟服務器時間同步了:
[root@localhost lib]# docker exec -ti 13da3c3f2488 /bin/bash
bash-4.3# date
Fri Oct 19 15:19:42 CST 2018
bash-4.3# exit

2、創建dockerfile文件,然后就不用每次啟動新的容器那么都要修改時間了
[root@localhost docker]# vim dockerfile
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
保存后,利用docker build命令生成鏡像使用即可

具體操作方法可以參考docker官方文檔:https://docs.docker.com/engine/reference/commandline/build/#tarball-contexts


免責聲明!

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



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