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

我的是

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

相关推荐
q***3851几秒前
SpringBoot + vue 管理系统
vue.js·spring boot·后端
HalvmånEver22 分钟前
Linux:进程的切换与调度(进程四)
linux·运维·服务器
vx_vxbs6635 分钟前
【SSM电动车智能充电服务平台】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·mysql·spring cloud·小程序·php·idea
踏浪无痕40 分钟前
@Transactional的5种失效场景和自检清单
spring boot·后端·spring cloud
m***92381 小时前
docker中配置redis
redis·docker·容器
谷隐凡二1 小时前
Docker 的核心理念及技术的简单说明
运维·docker·容器
LCG元1 小时前
终端里的"黑客帝国":htop, glances, bpytop 系统监控工具横评
linux
daqinzl1 小时前
Docker 安装 Ubuntu
ubuntu·docker
L***B5681 小时前
如何安装linux版本的node.js
linux·运维·node.js
LCG元1 小时前
终极武器:用 systemd 管理你的自定义应用服务(附配置文件)
linux