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

我的是

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

相关推荐
算力魔方AIPC29 分钟前
使用 Docker 一键部署 PaddleOCR-VL: 新手保姆级教程
运维·docker·容器
幸存者letp1 小时前
Python 常用方法分类大全
linux·服务器·python
知识分享小能手1 小时前
Ubuntu入门学习教程,从入门到精通,Linux操作系统概述(1)
linux·学习·ubuntu
KnowFlow企业知识库2 小时前
KnowFlow v2.3.0 重磅发布:适配 RAGFlow v0.22.1 和 MinerU v2.6.5、新增支持多模态视频解析,让知识库"看见"更多
linux·github
悟空空心2 小时前
服务器长ping,traceroute
linux·服务器·网络·ssh·ip·ping++
Ghost Face...2 小时前
Docker实战:从安装到多容器编排指南
运维·docker·容器
此生只爱蛋2 小时前
【Linux】正/反向代理
linux·运维·服务器
Rover.x2 小时前
Netty基于SpringBoot实现WebSocket
spring boot·后端·websocket
qq_5470261792 小时前
Linux 基础
linux·运维·arm开发
zfj3212 小时前
sshd除了远程shell外还有哪些功能
linux·ssh·sftp·shell