问题
在服务器上启动容器后,容器中的tomcat日志里面的时间与服务器时间不一致。
输入查看时间指令后
date
发现时间相差8小时,这主要是因为时区不一致导致的。
查看主机时间:Thu Nov 8 21:40:38 CST 2018
查看容器时间:Thu Nov 8 13:43:38 UTC 2018
CST应该是指(China Shanghai Time,东八区时间)
UTC应该是指(Coordinated Universal Time,标准时间)
解决办法
将宿主机的时区与时间绑定到容器中,这样时间就会跟宿主机一样了。
/etc/timezone 时区
/etc/localtime 时间
拿tomcat容器举例
docker run -d -p 8086:8080 -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime --name mytomcat tomcat:latest
注意!!! 一定要把时区加上,只挂载时间是不好用的。
补充说明
使用的服务器从centos7.4 升级成centos7.6后 ,启动容器时报挂载时区错误。
原因是宿主机的timezone变成文件夹,而容器内部timezone还是文件导致不匹配。
解决办法很简单:
在宿主机的timezone文件夹里创建新的timezone文件,配置时区,
我这里修改为上海时区
echo 'Asia/Shanghai' > /etc/timezone/timezone
然后执行
docker run -d -p 8086:8080 -v /etc/timezone/timezone:/etc/timezone -v /etc/localtime:/etc/localtime --name mytomcat tomcat:latest