分析问题,问题可能出在服务器系统时间、docker时间、代码输出时间或其他之中。

    1、查询服务器系统时间是否有问题,可调用linux命令:

    date 或 date -R

    检查当前服务器系统时间,如发现问题出现于此,对应修改即可

    2、查询docker时间是否有问题,由于docker容器是相对独立的,所以每个容器的时间是各自设置的

    首先检查指定容器的时间是否有问题,调用linux命令:

        ①docker ps

        ②docker exec [container_id] date

    如有问题,本人遇到过几次这样的问题,现总结出几种方式:

        ①修改Dockerfile,在该文件中添加

RUN rm -f /etc/localtime \
&& ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone

    以上为创建镜像时,将docker容器的时区进行设置,该方法偶尔行不通,本人目前有6个项目其中有2个nodejs项目不能如此解决,但是又有1个nodejs项目可以通过该方法解决,实在费解。

         ②修改创建容器语句,本人使用的intellij编译器,部署docker时首先是创建容器,然后再调用Dockfile,因此在创建容器的时候就修改容器创建语句,指定时区就可以解决这个问题。

    如图:加上该句即可

  

    -v /etc/localtime:/etc/localtime:ro

    3、如果以上都不能解决问题的话,可能就和代码有关了,检查下代码吧

    我看到有些资料是针对JAVA服务的解决方案,通过修改JVM的时间解决时间不对的问题,也是一种解决思路。


posted on 2019-06-17 16:16  walter_long  阅读(1521)  评论(0)    收藏  举报