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

被折叠的 条评论
为什么被折叠?



