在查看容器的日志的,发现时间有和宿主主机时间相差有8个小时,而且宿主主机使用的是CST时间,容器容器使用的是UTC时间
1、首先进入到容器中:
docker exec -it xxxxx /bin/bash
执行date,发现时间确实少8小时
2、在容器中修改下/etc/localtime文件的名称,避免冲突。
root@ddbfb445e9ca:# cd /etc/
root@ddbfb445e9ca:/etc# mv localtime localtime_bak
root@ddbfb445e9ca:/etc# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
执行以上命令后,在执行date发现时间与现在时间一致。
容器时间已解决,但是项目比如导出表格的时间还是慢8小时:
jre是通过/etc/timezone
配置文件读取本地时间的,解决方式是:
修改/etc/timezone配置,命令如下: echo "Asia/Shanghai" > /etc/timezone
重启容器,项目中时间正常。
修改 timezone 是重点。