docker下,logback日志打印时间与北京时间相差8小时
使用docker进行项目开发时,发现日志打印时间与北京时间相差8小时。 第一种方法: 1、验证服务器时间是否正确,在服务器中使用date命令。 2、验证服务器时间是否正确,进入到容器中,依然使用date命令。
3、如果以上两个步骤均没有问题,则表示jvm的时区没有矫正,日志打印并没有取容器的时间,因为java作为一个容器放在了开发的微服务容器中,执行以下步骤就可以解决。 第一种方法: docker exec -it 微服务容器 /bin/bash; apt-get update apt-get install vim --解决容器内无法使用vi cd /etc vi timezone 将timezone中的内容由原来的Etc/UTC修改为Asia/Shanghai 只适用于一个容器基本不会被销毁的情况下(例如:第三方的应用容器),因为一旦容器删除后,该配置就不生效了,在实际应用中,我们肯定做应用升级,这时候每次都去执行这个操作实在繁琐,而且,在微服务中有很多的应用容器。 第二种方法: 在生成镜像的时候在Dockerfile中做好配置自动修改时区:
FROM java:8 # time zone RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata
从上边可以看出博主使用的java环境下的镜像打包,其他环境没有实践,请各位自行尝试!!!