docker容器时间不对及java程序时间不对解决

使用docker容器部署的应用,会出现时间与主机不一致的情况

1. 容器时间与主机差8个小时:主机的与容器的/etc/localtime不一致

解决方法:挂载主机的/etc/localtime,如果没有则cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2. 如果里面运行的是java程序,哪么程序时间还是会8个小时的差别:主要是Java或取时间是从/etc/timezone里获取时区

解决方法:挂载主机的/etc/timezone,如果没有则新建echo "Asia/shanghai" > /etc/timezone;

或者是通过jvm参数将时区信息传进jvm里:-Duser.timezone=GMT+08 

示例:

jenkins:
        image: jenkins/jenkins:lts-alpine
        user: "1000:1000"
        volumes:
            - /home/lobin/jenkins:/var/jenkins_home
            - /etc/localtime:/etc/localtime:ro
            - /etc/timezone:/etc/timezone:ro
原文地址:https://www.cnblogs.com/lobin/p/10581964.html