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

我的是

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

相关推荐
凉、介1 分钟前
Linux 下的 time_before/time_after 接口
linux·运维·服务器·学习
python百炼成钢2 分钟前
42.Linux INPUT 子系统驱动
linux·驱动开发
z***565610 分钟前
Spring Boot集成Kafka:最佳实践与详细指南
spring boot·kafka·linq
小马爱打代码12 分钟前
Spring Boot:DTO、VO、BO、Entity 的正确工程化分层
java·spring boot·后端
i***486112 分钟前
对Docker部署的MySQL中的数据进行备份恢复
mysql·docker·容器
u***B79214 分钟前
Spring Boot实时推送技术详解:三个经典案例
spring boot·后端·状态模式
t***821114 分钟前
Spring Boot 整合 MyBatis 与 PostgreSQL 实战指南
spring boot·postgresql·mybatis
n***F87516 分钟前
Spring Boot + Spring AI快速体验
人工智能·spring boot·spring
last demo18 分钟前
VSFTPD 服务器
linux·运维·服务器
wdfk_prog18 分钟前
[Linux]学习笔记系列 -- [block]fops
linux·笔记·学习