docker容器时区问题解决

今天将docker容器部署到正式环境生产环境了,在测试环境上做测试的时候就因为docker的时区问题导致各系统的时间出现混乱。现在生产环境也出现了,现在把问题记录下来!

在编写dockerfile的时候就加了一句  RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 本来以为万事大吉了,应该不会出现问题。

你在应用系统层面看到时间是正常的

[root@iZ25xg2wri7Z ~]# md5sum /etc/localtime 
3214d0ed7947a1bcf0791dc400aa277e  /etc/localtime  <这个md5码和/usr/share/zoneinfo/shanghai是一样的
[root@iZ25xg2wri7Z ~]# 
[root@iZ25xg2wri7Z ~]# 
[root@iZ25xg2wri7Z ~]# docker-enter 61cbb0ed24fc
Last login: Tue Jun 28 16:44:46 CST 2016
[root@61cbb0ed24fc ~]# date
Tue Jun 28 16:49:38 CST 2016
[root@61cbb0ed24fc ~]#

但是应用日志不正常

192.168.0.1 - - [28/Jun/2016:08:55:09 +0000] "GET /static/lib/alertMsg.js HTTP/1.0" 304 -
192.168.0.1 - - [28/Jun/2016:08:55:09 +0000] "GET /static/lib/bootstrap-datetimepicker.min.js HTTP/1.0" 304 -
192.168.0.1 - - [28/Jun/2016:08:55:09 +0000] "GET /static/lib/bootstrap-datetimepicker.zh-CN.js HTTP/1.0" 304 -
192.168.0.1 - - [28/Jun/2016:08:55:09 +0000] "GET /static/lib/dropdown.js HTTP/1.0" 304 -
192.168.0.1 - - [28/Jun/2016:08:55:09 +0000] "GET /static/lib/sendMsg.js HTTP/1.0" 304 -
192.168.0.1 - - [28/Jun/2016:08:55:09 +0000] "GET /static/js/admin/pagination.js HTTP/1.0" 304 -
192.168.0.1 - - [28/Jun/2016:08:55:09 +0000] "GET /static/js/admin/ngPlugin-unCompress.js HTTP/1.0" 304 -
192.168.0.1 - - [28/Jun/2016:08:55:09 +0000] "GET /static/images/main.png HTTP/1.0" 304 -

检查发现是时区问题,这个问题一般情况下不仔细检查看不到问题!!!!问题就是它是一个链接文件!!!!!到UTC了

[root@61cbb0ed24fc ~]# ls -lh /etc/localtime 
lrwxrwxrwx 1 root root 25 Apr  1 01:03 /etc/localtime -> ../usr/share/zoneinfo/UTC
[root@61cbb0ed24fc ~]#

 

解决方法:

[root@ab374724d6b0 ~]# 
[root@ab374724d6b0 ~]# rm -rf /etc/localtime 
[root@ab374724d6b0 ~]#  ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@ab374724d6b0 ~]#

 

唉,要细心啊!!!!!!坑太多了,我记的我在测试环境遇到过,看来还是要记录到博客,有一个记录!!