docker容器时间与宿主机时间不一致问题总结

环境:linux centons7 docker

(一)问题出现


查询容器内部时间和宿主机时间相差8小时,时区同步完成时间不对。

查询命令:(不进入容器内部,执行命令)

docker exec -it b6d75a836b9a date  也可以如下写法

docker exec -it b6d75a836b9a bin/bash -c 需要执行的命令( date )

《注》-c docker 命令里面在外部执行命名参数

CST是指(China Shanghai Time,东八区时间) UTC是指(Coordinated Universal Time,标准时间) Asia是指(设置以后的上海时区)

二(问题出现底层原理)

在构建容器的时候用到(时间、时区)时候有jdk,宿主机,和容器,只要保证3者时间一致即可。

如果不关注基础镜像的底层构建时候的时区,在容器构建时候加网上如下办法只会出现以上图片问题,时区改变了,时间还是差8小时。

三(各个时间段网上解决办法)


1.容器生成后(复制主机的时间文件)

如果本机时区正确:

直接复制 

docker cp /etc/localtime 【容器ID或者NAME】:/etc/localtime

如果本机时区不正确:

在容器中创建文件:

mkdir -p /usr/share/zoneinfo/Asia


在宿主机上面执行命令,拷贝时区文件:

docker cp /usr/share/zoneinfo/Asia/Shanghai 容器ID或容器名:/usr/share/zoneinfo/Asia

如果报错 cp: failed to access '/etc/localtime': Too many levels of symbolic links cat /etc/localtime 先rm 再cp

#rm /etc/localtime

再次查询时间:

如果还是不行,则进入容器内部执行:

 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2.容器生成后(进入容器内部直接修改时间)

修改时间

   以root身份进入容器                                                                                                              docker exec -it -u root 24795ac94ae7 /bin/sh

可以使用date -R 查看时间

sudo date -s MM/DD/YY//修改日期

sudo date -s hh:mm:ss//修改时间

在修改时间以后,修改硬件CMOS的时间

sudo hwclock --systohc//非常重要,如果没有这一步的话,后面时间还是不准

3.容器生成前(进入dockerfile里面设置)

FROM ${docker.registry.public}/jdk:8u252                                                                            ENV TZ=Asia/Shanghai                                                                                                        RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezoneWORKDIR /COPY ${project.build.finalName}.jar ${project.artifactId}.jarENTRYPOINT ["java","-Duser.timezone=GMT+08", "-jar", "${project.artifactId}.jar"]

上面指定时区TZ,时间-Duser.timezone

jdk读取linux系统时间步骤:

1.先找“TZ”变量,没有,到2,

2.读/etc/timezone,没有到3,

3.比较/etc/localtime文件与"/usr/share/zoneinfo目录下所有时区文件,如果有一致的,就为该时区,如果没有,到4,

4.默认为标准GMT

四(作者方法)

因为工作项目当中构建频繁,所以只能在构建前进行修改,在dockerfile里面修改最佳,但当上面方法都失效的时候,就应该关注底层镜像构建时候jdk的时间。

FROM 工作IP:端口8888/jdk:8u252

ENV TZ=Asia/Shanghai

五(思考)

既然时间可以配置为什么我们不用好的插件来管理。

时间同步服务器ntpdate和IANA维护的tzdata都是好的选择,下面推荐2篇centons7 的有关文章。

(1)Centos7服务器时间同步及国内常用时间同步服务器地址 && 自建时间同步服务器ntpdate

http://www.mamicode.com/info-detail-1523743.html

(2)解决Docker容器时区及时间不同步问题的方法

http://www.cppcns.com/jiqiao/fuwuqi/173661.html

还有很多好的方法和一些命令容易遇到的bug希望有时间来和大家分享探讨。

坚持把简单的事情做好就是不简单,坚持把平凡的事情做好就是不平凡。所谓成功,就是在平凡中做出不平凡的坚持。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345