关于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

我的是

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

相关推荐
花小璇学linux40 分钟前
imx6ull-驱动开发篇42——Linux I2C 驱动框架简介
linux·驱动开发·嵌入式软件
凌肖战42 分钟前
编写Linux下设备驱动时两种方案:内核态驱动开发和用户态驱动开发
linux·驱动开发
计算机学姐2 小时前
基于SpringBoot的社团管理系统【2026最新】
java·vue.js·spring boot·后端·mysql·spring·mybatis
CodeLongBear3 小时前
Spring Boot 与 Spring MVC 的区别与联系:从本质到实践
spring boot·spring·mvc
Wy_编程3 小时前
VS中创建Linux项目
linux
luck_lin3 小时前
linux添加新硬盘挂载分区和数据迁移
linux·运维·分区扩容
iFulling4 小时前
【云原生】CentOS安装Kubernetes+Jenkins
linux·云原生·kubernetes·centos·jenkins
-L74 小时前
进入docker中mysql容器的方法
运维·mysql·docker·容器
明月与玄武4 小时前
Docker化性能监控平台搭建:JMeter+InfluxDB+Grafana全攻略
jmeter·docker·grafana
THMAIL5 小时前
深度剖析Spring AI源码(七):化繁为简,Spring Boot自动配置的实现之秘
人工智能·spring boot·spring