在Docker容器创建好之后,可能会发现容器时间跟宿主机时间不一致,这就需要同步它们的时间,让容器时间跟宿主机时间保持一致。如下:

宿主机时间
[root@slave-1 ~]# date
Fri May 12 11:20:30 CST 2017 容器时间
[root@slave-1 ~]# docker exec -ti 87986863838b /bin/bash
root@87986863838b:/# date
Fri May 12 03:20:33 UTC 2017 发现两者之间的时间相差了八个小时!
宿主机采用了CST时区,CST应该是指(China Shanghai Time,东八区时间)
容器采用了UTC时区,UTC应该是指(Coordinated Universal Time,标准时间) 统一两者的时区有下面几种方法
1)共享主机的localtime
创建容器的时候指定启动参数,挂载localtime文件到容器内,保证两者所采用的时区是一致的。
# docker run -ti -d --name my-nginx -v /etc/localtime:/etc/localtime:ro docker.io/nginx /bin/bash 2)复制主机的localtime
[root@slave-1 ~]# docker cp /etc/localtime 87986863838b:/etc/ 然后再登陆容器,查看时间,发现已经跟宿主机时间同步了
[root@slave-1 ~]# docker exec -ti 87986863838b /bin/bash
root@87986863838b:/# date
Fri May 12 11:26:19 CST 2017 3)创建dockerfile文件的时候,自定义该镜像的时间格式及时区。在dockerfile文件里添加下面内容:
......
FROM tomcat
ENV CATALINA_HOME /usr/local/tomcat
.......
#设置时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
...... 保存后,利用docker build命令生成镜像使用即可,使用dockerfile创建的镜像的容器改变了容器的时区,这样不仅保证了容器时间与宿主机时间一致(假如宿主机也是CST),并且像上面使用tomcat作为父镜像的话,JVM的时区也是CST,这样tomcat的日志信息的时间也是和宿主机一致的,像上面那两种方式只是保证了宿主机时间与容器时间一致,JVM的时区并没有改变,tomcat日志的打印时间依旧是UTC。

Docker容器学习梳理 - 容器时间跟宿主机时间同步的更多相关文章

  1. docker 容器时间跟宿主机时间同步

    docker 容器时间跟宿主机时间同步 docker cp /etc/localtime 87986863838b:/etc/docker cp /etc/localtime container-na ...

  2. Docker容器 - 容器时间跟宿主机时间同步

    在Docker容器创建好之后,可能会发现容器时间跟宿主机时间不一致,这就需要同步它们的时间,让容器时间跟宿主机时间保持一致. 转载自:https://www.cnblogs.com/kevingrac ...

  3. Docker容器学习梳理 - 容器间网络通信设置(Pipework和Open vSwitch)

    自从Docker容器出现以来,容器的网络通信就一直是被关注的焦点,也是生产环境的迫切需求.容器的网络通信又可以分为两大方面:单主机容器上的相互通信,和跨主机的容器相互通信.下面将分别针对这两方面,对容 ...

  4. Docker容器学习梳理 - 容器硬盘热扩容

    前面已介绍了docker很多知识点的操作记录,今天这里梳理下docker容器空间扩展的操作.默认情况下,物理机下创建的docker容器的空间是10G(虚拟机下创建的docker容器空间就是虚拟机的空间 ...

  5. Docker容器学习梳理 - 容器登陆方法梳理(attach、exec、nsenter)

    对于运行在后台的Docker容器,我们运维人员时常是有登陆进去的需求.登陆Docker容器的方式:1)使用ssh登陆容器.这种方法需要在容器中启动sshd,存在开销和攻击面增大的问题.同时也违反了Do ...

  6. Docker容器学习梳理 - 日常操作总结

    使用Docker已有一段时间了,今天正好有空梳理下自己平时操作Docker时的一些命令和注意细节: Docker 命令帮助 $ sudo docker Commands: attach Attach ...

  7. Docker容器学习梳理 - 应用程序容器环境部署

    关于国内Docker镜像,可以参考:Docker容器学习梳理--基础知识(2) 的Docker镜像使用. 如果我们需要在Docker环境下部署tomcat.redis.mysql.nginx.php等 ...

  8. 同步docker中的容器时间和宿主机相同

    同步docker中的容器时间和宿主机相同.cd /etc/ 在容器中修改下/etc/localtime文件的名称,避免冲突. mv localtime localtime_bak cp /usr/sh ...

  9. Docker容器学习梳理 - Volume数据卷使用

    之前部署了Docker容器学习梳理--基础环境安装,接下来看看Docker Volume的使用. Docker volume使用 Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker ...

随机推荐

  1. WCF REST模式下的UriTemplate路径问题

    问题:在WCF4.0中,用UriTemplate进行表明路径参数的时候会出现问题 1.创建的项目是Service.Interface[4.0]和Service[4.0]还有Client[4.0] 2. ...

  2. Linux 小知识翻译 - 「文件系统的种类」

    现在的Linux,主流的文件系统是 「ext3」.但是,文件系统除此之外,还有「ReiserFS」「XFS」「ZFS」等等. 此外,Windows的主流文件系统是「NTFS」,CD-ROM的主流文件系 ...

  3. Alpha冲刺! Day4 - 磨刀

    Alpha冲刺! Day4 - 磨刀 今日已完成 晨瑶:和大家交流了一下,反思这阶段团队遇到的问题. 昭锡:今天跟学长交流了点问题,学习了Gson使用. 永盛:Gravel 数据库重新设计. 立强:看 ...

  4. JAVA中实现单例(Singleton)模式的八种方式

    单例模式 单例模式,是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例.即一个类只有一个对象实例. 基本的实现思路 单 ...

  5. 1.1 机中容量单位B、KB、MB、GB和TB的关系

    字节(Byte,简称B)与K.KB.M.MB的关系 1.计算机中各种存储容量的单位都是用字节(Byte简为B)来表示,此外还有KB.MB.GB和TB,他们的关系是: 1KB=1024Bytes=2的1 ...

  6. oc kvc的模式:匹配搜索模式(模式匹配)、装包解包

    按照一定规则使用匹配模式在目标空间进行搜索,然后执行相应操作: 运行时系统将kvc的运行机制解释为模式匹配,将值的兼容性问题解释为装包解包问题 一.模式匹配 The default implement ...

  7. WINS服务器与DNS服务器有什么区别?

    1.WINS实现的是IP地址和计算机名称的映射,DNS实现的是IP地址和域名的映射.2.WINS作用的范围是某个内部网络,DNS的范围是整个互联网.简单说明一下:WINS实现的是IP地址和计算机名称的 ...

  8. dd测试

    time dd if=/dev/zero of=/root/test.db2 bs=200K count=10000 oflag=dsync

  9. (1) 天猫精灵接入Home Assistant- 网站论坛

    https://bbs.hassbian.com/forum-38-1.html 1051196347 123456 https://bbs.hassbian.com/thread-4054-1-1. ...

  10. intellij idea 修改背景保护色&&修改字体&&快捷键大全(转)

    文章转自http://blog.csdn.net/hpf911/article/details/16888797 近Idea比较流行,Eclipse因为maven的问题,运行起来非常慢,各种提示也不够 ...