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

我的是

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

相关推荐
独行soc6 分钟前
2025年渗透测试面试题总结-快手[实习]安全工程师(题目+回答)
linux·安全·web安全·网络安全·面试·职场和发展·渗透测试
XY.散人10 分钟前
初识Linux · NAT 内网穿透 内网打洞 代理
linux·服务器·网络
爱吃烤鸡翅的酸菜鱼40 分钟前
【Spring Boot】配置实战指南:Properties与YML的深度对比与最佳实践
java·spring boot·后端·spring·java-ee·intellij-idea
qq_2153978971 小时前
docker 启动一个python环境的项目
docker·容器
SizeTheMoment1 小时前
SpringBoot快速上手
java·spring boot·后端
feing.1 小时前
防火墙高可靠性
linux·服务器·网络
苒苒鸭2 小时前
远程连接的公私钥加密
linux
简诚2 小时前
redis在spring boot中异常退出
spring boot·redis
破刺不会编程2 小时前
Linux中进程控制(上)
linux·运维·服务器·开发语言·windows