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

我的是

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

相关推荐
幽络源小助理8 分钟前
SpringBoot+Vue旅游推荐系统源码 | 幽络源
java·开发语言·spring boot
yuanmenghao11 分钟前
车载Linux 系统问题定位方法论与实战系列 - 开篇: 为什么需要一套“系统化”的 Linux 问题定位方法
linux·运维·服务器·数据结构·c++·自动驾驶
CheungChunChiu14 分钟前
# Xorg 配置与 modesetting 驱动详解:从设备节点到显示旋转
android·linux·ubuntu·显示·xserver
柏木乃一14 分钟前
基础IO(上)
linux·服务器·c语言·c++·shell
康小庄17 分钟前
通过NGINX实现将小程序HTTPS请求转为内部HTTP请求
java·spring boot·nginx·spring·http·小程序
阿杰 AJie17 分钟前
Docker 常用指令和使用方法
docker·容器·eureka
Swift社区17 分钟前
Date / LocalDateTime 转换错误,一次踩坑后的完整复盘
java·spring boot·spring
DeeplyMind18 分钟前
第7章:DRM内核调试技术:7.1 DRM DebugFS的使用
linux·驱动开发·drm·debugfs·drm debugfs
提伯斯64620 分钟前
Fast-LIO到MAVROS视觉定位转换
linux·ros·无人机·mid360·fasltlio
天码-行空22 分钟前
Oracle 19c(19.3.0.0)完整安装教程(Windows+Linux双环境)
linux·运维·数据库·oracle