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

我的是

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

相关推荐
用户23678298016811 小时前
Linux df 命令深度解析:从磁盘空间监控到 inode 耗尽排查
linux
jay神11 小时前
基于SpringBoot的宠物生命周期信息管理系统
java·数据库·spring boot·后端·web开发·宠物·管理系统
3301_11 小时前
Debian13 ThinkPad T490安装指纹解锁
linux
万亿少女的梦16811 小时前
基于SpringBoot的在线考试管理系统设计与实现
java·spring boot·后端
Mortalbreeze11 小时前
深度理解进程----进程状态
linux·运维·服务器
艾莉丝努力练剑11 小时前
【Linux网络】Linux 网络编程入门:TCP Socket 编程(下)
linux·运维·服务器·网络·c++·tcp/ip
宵时待雨12 小时前
linux笔记归纳4:进程概念
linux·运维·服务器·c++·笔记
零K沁雪12 小时前
OpenV_X_N 2.5.x 配置文件选项详解
linux
原来是猿12 小时前
TCP Echo Server 深度解析:从单进程到线程池的演进之路(中)
linux·服务器·数据库
leoZ23112 小时前
Linux 环境常用服务一键部署文档(Docker 版)
运维·docker·容器