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

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 程序的时区)