zoukankan      html  css  js  c++  java
  • 关于docker线上部署时间问题

    背景

    公司线上部署采用docker swarm方式,这几天线上项目时间突然出了问题(ps:第一反应,我去,这也能出问题,代码里肯定藏毒了),线上时间总跟实际时间差八个小时。本着速战速决的原则,把所有时间减了八个小时,夜晚一上线,卧槽,没生效,大佬给我“指点”一通后我幡然醒悟。得,总结一下问题

    问题分析

    宿主机采用的是cst时间

    [root@test-env1 data]# date
    2018年 11月 27日 星期二 11:12:41 CST
    

    docker容器里采用的是utc时间

    root@40f3dddeaf46:/# date
    Tue Nov 27 03:13:21 UTC 2018
    

    中间刚好相差八个小时

    问题解决

    两种方案:

    • 改容器时间与宿主机保持一致
    • 在代码中更改时间
    1. 改容器时间与宿主机保持一致
      统一时区的几种方法
      (1)共享主机的localtime
    # docker run -ti -d --name my-nginx -v /etc/localtime:/etc/localtime:ro  docker.io/nginx  /bin/bash
    

    (2)复制主机的localtime

    docker cp /etc/localtime 87986863838b:/etc/
    

    (3)在dockerfile文件中加入如下内容

    RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
    
    1. 第二种就是继续沿用容器utc时间,在原有的时间上加八个小时,本着不麻烦其他大佬的原则还是接着用第二种
  • 相关阅读:
    Spring 定时任务
    JSOUP 爬虫
    Google 翻译(中英,英中)
    linux mysql 卸载与安装及配置命令
    2.logback+slf4j+janino 配置项目的日志输出
    DW3 消息推送
    JQuery 常用知识
    intellij idea 2016.3.5 控制台取消行数限制
    1.搭建Maven 多模块应用 --Intellij IDEA 2016.3.5
    JSON 解析工具的封装(Java)
  • 原文地址:https://www.cnblogs.com/qflyue/p/10025399.html
Copyright © 2011-2022 走看看