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

我的是

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

相关推荐
isaki1379 分钟前
arm day1
linux·运维·arm开发
optimistic_chen14 分钟前
【Java EE进阶 --- SpringBoot】Spring 核心 --- AOP
spring boot·笔记·spring·java-ee·aop·java注解
asom2215 分钟前
互联网大厂Java求职面试实战:Spring Boot到Kubernetes的技术问答
java·spring boot·kubernetes·oauth2·电商·microservices·面试技巧
正午阳光下29 分钟前
LINUX下好用的图形化界面串口助手cutecom
linux·cutecom
Dovis(誓平步青云)31 分钟前
《场景化落地:用 Linux 共享内存解决进程间高效数据传输问题(终篇)》
linux·运维·服务器
LCG元33 分钟前
实战:打造你的专属 Linux 工作环境(Oh My Zsh + 插件推荐)
linux
java_logo36 分钟前
PERL Docker 容器化部署指南
linux·运维·docker·容器·eureka·centos·perl
敲上瘾38 分钟前
C++ ODB ORM 完全指南:从入门到实战应用
linux·数据库·c++·oracle·db
烽学长38 分钟前
(附源码)基于Spring boot的校园志愿服务管理系统的设计与实现
java·spring boot·后端
一直向钱1 小时前
Ubuntu 服务器的无法使用WinSCP低版本连接登录
linux·服务器·ubuntu