如何修改 docker容器 java 程序的时区

本文详细介绍如何在Docker容器中正确配置时区,确保容器内的时间和Java应用程序的时间与宿主机保持一致。通过修改/etc/localtime和/etc/timezone文件,可以实现容器内部时间和Java应用时间的同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 如果单独只是修改docker容器的时区, 修改/etc/localtime使本地时间正确(对应linux的date指令正确),

执行

docker run -d --name assetshealthiness-service  -v /data/saas/health:/logs -v /etc/localtime:/etc/localtime:ro  -p 9002:9002 10.122.61.199/saas/assetshealthiness-service:test

使用date -R 命令就可以得到八时区的时间。

但是此时jvm时区并没有变化,还是UTC+0。还需要修改/etc/timezone使得时区正确(对应Java时间正确)。

也即是共有两个文件要修改,修改/etc/localtime使本地时间正确(对应linux的date指令正确) ,还需要修改/etc/timezone使得时区正确(对应Java时间正确)。

2. 在宿主机里面执行下面的两条命令:

echo 'Asia/Shanghai' >/etc/timezone
docker run -d --name assetshealthiness-service  -v /data/saas/health:/logs -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro -p 9002:9002 10.122.61.199/saas/assetshealthiness-service:test

  这样两步后,docker 容器和里面的java应用的时间都是UTC+8了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值