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

我的是

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

相关推荐
毕设源码-邱学长7 小时前
【开题答辩全过程】以 基于SpringBoot的智能家具物联网平台的设计与实现为例,包含答辩的问题和答案
spring boot·后端·物联网
回忆是昨天里的海7 小时前
docker网络-自定义网络
运维·docker·容器
晚风吹人醒.7 小时前
Awk文本处理工具:命令模式,脚本模式的介绍及正则表达式应用举例
linux·运维·服务器·awk
毕设源码-邱学长7 小时前
【开题答辩全过程】以 基于SpringBoot的专业分流系统为例,包含答辩的问题和答案
java·spring boot·后端
java硕哥7 小时前
Spring与SpringBoot的重要接口及核心概念
java·spring boot·spring
lbt_dvshare7 小时前
vim 常用技巧和实例
linux·编辑器·vim
阿拉伯柠檬8 小时前
传输层与传输层协议UDP
linux·网络·网络协议·面试·udp
你好helloworld8 小时前
linux离线安装nvidia-docker
linux·运维·服务器
飞Link8 小时前
【开发工具】Docker常用操作
运维·docker·容器
忙里偷闲学python8 小时前
mysql
linux·数据库·mysql·oracle