关于Linux Docker springboot jar 日志时间不正确 问题解决

使用Springboot项目的jar,制作了一个Docker镜像,启动该镜像后发现容器和容器中的Springboot 项目的日志时间不正确。

解决

查看容器时间命令为:

docker exec 容器id date

1. 容器与宿主机同步时间

在启动镜像时候把操作系统的时间通过"只读"的方式挂载到容器中

添加命令行配置

java 复制代码
-v /etc/localtime:/etc/localtime:ro

比如:

2. Spring boot Jar 启动时增加时区参数

在制作镜像时候,运行jar时指定上时区参数,以便Springboot项目中的日志中能够正确读取到指定时区的时间。中国采用东八区的时区,所以是GMT+8

-Duser.timezone=GMT+8

如:

java 复制代码
java -jar -Duser.timezone=GMT+8 your_application.jar

对应的Dockerfile应该为

java 复制代码
ENTRYPOINT ["java", "-jar", "-Duser.timezone=GMT+8", "/app.jar"]

或是

java 复制代码
CMD java -Duser.timezone=GMT+8 -jar lamp-likang-server.jar

我的是

最后删除镜像,重新打包镜像 启动容器 查看日志就发现同步了

相关推荐
计算机学姐14 小时前
基于SpringBoot的汽车租赁系统【个性化推荐算法+数据可视化统计】
java·vue.js·spring boot·后端·spring·汽车·推荐算法
好好研究14 小时前
SpringBoot小案例打包执行流程
java·spring boot·后端
__雨夜星辰__14 小时前
VMware 17 下 Ubuntu 虚拟机与宿主机间复制粘贴失效问题
linux·运维·ubuntu
prettyxian14 小时前
【linux】进程调度:优先级、时间片与O(1)算法
linux·运维·服务器
rgeshfgreh14 小时前
Spring Bean管理机制深度解析
java·spring boot·spring
ling-4514 小时前
ssm-day07 springboot3、Mybatis-Plus、springboot实战
java·spring boot·后端
小猪佩奇TONY14 小时前
Linux 内核学习(15) --- linux MMU 和 分页机制
linux·学习
jerryinwuhan14 小时前
期末总复习
linux·运维
浅安的邂逅15 小时前
ubuntu 18.04及以上版本配置静态IP方法
linux·运维·网络·ubuntu·ip设置
lxysbly15 小时前
ps1模拟器安卓版带金手指
android·linux·运维