Docker-解决容器时区时间不一致

原文:Docker-解决容器时区时间不一致

问题

在服务器上启动容器后,容器中的tomcat日志里面的时间与服务器时间不一致。
输入查看时间指令后

date
  • 1

发现时间相差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 时间
  • 1
  • 2

拿tomcat容器举例

docker run -d -p 8086:8080  -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime --name mytomcat tomcat:latest
  • 1

注意!!! 一定要把时区加上,只挂载时间是不好用的。

补充说明

使用的服务器从centos7.4 升级成centos7.6后 ,启动容器时报挂载时区错误。
原因是宿主机的timezone变成文件夹,而容器内部timezone还是文件导致不匹配。
解决办法很简单:
在宿主机的timezone文件夹里创建新的timezone文件,配置时区,
我这里修改为上海时区

echo 'Asia/Shanghai' > /etc/timezone/timezone
  • 1

然后执行

docker run -d -p 8086:8080  -v /etc/timezone/timezone:/etc/timezone -v /etc/localtime:/etc/localtime --name mytomcat tomcat:latest
  • 1

猜你喜欢

转载自www.cnblogs.com/lonelyxmas/p/12348125.html