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

问题

在服务器上启动容器后,容器中的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
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值