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

我的是

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

相关推荐
m0_6948455718 小时前
教你使用服务器如何搭建数据库
linux·运维·服务器·数据库·云计算
空灵之海19 小时前
Ubuntu Server 22.04.5系统安装教程
linux·运维·ubuntu
gamers19 小时前
rock linux 9 安装mysql 5.7.44
linux·mysql·adb
二进制_博客20 小时前
给CentOS的虚拟机扩容
linux·运维·centos
傻傻虎虎20 小时前
【Docker】容器端口暴露+镜像生成实战
java·docker·容器
千钰v20 小时前
Tcpdump: The Basics Tcpdump 基础
linux·运维·网络·tcpdump·tryhackme
kk57920 小时前
【Ubuntu】sudo apt update出现E :仓库***没有Release文件
linux·运维·ubuntu
cellurw20 小时前
Linux下C语言实现HTTP+SQLite3电子元器件查询系统
linux·c语言·http
练习时长一年20 小时前
搭建langchain4j+SpringBoot的Ai项目
java·spring boot·后端
小雪_Snow20 小时前
在 Docker 中安装 MySQL 教程
docker