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

我的是

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

相关推荐
胡斌附体6 分钟前
linux(ubuntu)拉取源码进行docker容器部署
linux·git·ubuntu·docker·node·nvm
wdfk_prog19 分钟前
[Linux]学习笔记系列 -- [drivers][base]platform
linux·笔记·学习
永不复还30 分钟前
linux 使用X11监听键盘鼠标输入
linux·x11
JH30731 小时前
SpringBoot自定义启动banner:给项目加个专属“开机画面”
java·spring boot·后端
kida_yuan1 小时前
【Linux】说说我对 Wine 与 deepin-wine 的理解
linux·运维·wine
嵌入小生0071 小时前
基于Linux系统下的C语言程序错误及常见内存问题调试方法教程(嵌入式-Linux-C语言)
linux·c语言·开发语言·嵌入式·小白·内存管理调试·程序错误调试
松涛和鸣2 小时前
DAY63 IMX6ULL ADC Driver Development
linux·运维·arm开发·单片机·嵌入式硬件·ubuntu
扑火的小飞蛾2 小时前
RHEL 7 安装 Docker 过程总结
运维·docker·容器
猿小羽2 小时前
AI 学习与实战系列:Spring AI + MCP 深度实战——构建标准化、可扩展的智能 Agent 系统
java·spring boot·llm·agent·spring ai·mcp·model context protocol
帅得不敢出门2 小时前
Android Framework在mk中新增类似PRODUCT_MODEL的变量并传递给buildinfo.sh及prop属性中
android·linux·前端