`
haiouc
  • 浏览: 118084 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Docker容器时间与主机时间不一致

阅读更多

通过date命令查看时间

 

查看主机时间 

[root@localhost ~]# date

 2016 07 27日 星期三 22:42:44 CST

  

查看容器时间 

root@b43340ecf5ef:/#date 

 Wed Jul 27 14:43:31 UTC 2016

 

可以发现,他们相隔了8小时。

 CST应该是指(China Shanghai Time,东八区时间)
UTC
应该是指(Coordinated Universal Time,标准时间)

 所以,这2个时间实际上应该相差8个小时。(所以没有设置过的容器, 一般跟宿主机时间相差8h)

 所以,必须统一两者的时区。

  

共享主机的localtime  (方法一)

 创建容器的时候指定启动参数,挂载localtime文件到容器内  ,保证两者所采用的时区是一致的。

 docker run --name <name> -v /etc/localtime:/etc/localtime:ro ....

  

复制主机的localtime  (方法二)

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

 在完成后,再通过date命令进行查看当前时间。

 

但是,在容器中运行的程序的时间不一定能更新过来,比如在容器运行的MySQL服务,在更新时间后,通过sql查看MySQL的时间

 select now() from dual;

 可以发现,时间并没有更改过来。

 这时候必须要重启mysql服务或者重启Docker容器,mysql才能读取到更改过后的时间。

 

创建自定义的dockerfile  (方法三)

 创建dockerfile文件,其实没有什么内容,就是自定义了该镜像的时间格式及时区。

  

FROM redis

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命令生成镜像使用即可。

 

分享到:
评论

相关推荐

    Docker 解决容器时间与主机时间不一致的问题三种解决方案

    主要介绍了Docker 解决容器时间与主机时间不一致的问题的相关资料,这里提供了三种方法,供大家参考,需要的朋友可以参考下

    docker容器时间和宿主机实际时间不一致的解决

    docker容器时间和宿主机实际时间不一致的解决

    Etcd flannel Docker 实现 docker 跨主机容器之间通讯

    Docker 自身提供的是容器内的网络隔离,但默认情况下并不支持跨主机的容器通信。Docker 的网络模式包括桥接网络、主机网络、overlay 网络等。在多主机场景下,我们通常会使用 overlay 网络,配合 Flannel 来实现跨...

    promethues(普罗米修斯)监控docker容器-详细文档

    promethues(普罗米修斯)监控docker容器——详细文档,超详细文档总结

    电信设备-Docker容器的跨主机通信方法和系统.zip

    每个Docker容器都是一个独立的运行环境,保证了应用的隔离性和一致性。 2. 跨主机通信挑战:当多个Docker容器分布在不同的物理或虚拟主机上时,它们之间的通信成为一个挑战。默认情况下,容器内部网络与宿主机网络...

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

    拿到交付的docker镜像后,启动后进入容器控制台,使用date命令查看果然时间不正确。再查看宿主机时间是正确,这样肯定是容器启动时未将时区与宿主机保持同步了,由于测试镜像是由dockfile直接构建,因此问题基本了定...

    Etcd + flannel + Docker 实现 docker 跨主机容器之间通讯 .pdf

    flannel是一个为Kubernetes设计的覆盖网络(Overlay Network)工具,它可以与Docker容器引擎集成,用于解决Docker多主机之间的网络通信问题。flannel通过给每台主机分配一个子网段,确保容器跨主机的互通性。...

    Docker容器技术-Docker-compose使用案例.pptx

    Docker容器具有启动快速、资源占用少、一致性好等优点,使得开发者可以方便地构建、部署和运行应用程序。 在Docker容器技术中,Docker Compose是一个重要的工具,用于管理多个容器的应用。通过Docker Compose,...

    Docker容器技术-数据卷的类型与区别.pptx

    它可以存储在宿主机系统的任意位置,但在不同的宿主机系统时不可移植的,因为 bind mount 所指向的 host 目录也不能一样。因此,为了 Dockerfile 的可移植性,绑定挂载不能出现在 Dockerfile 中。 3. tmpfs(临时...

    docker容器学习总结 上传版.docx

    docker 容器学习总结 Docker 是一个开发、发布和运行应用程序的开放型平台,能够将应用程序与基础架构分离,以便达到快速交付的目的。下面是 Docker 容器学习总结中的重要知识点: 一、虚拟化技术 虚拟化是一种...

    Docker容器技术入门概述.docx

    传统虚拟机技术需要模拟整台机器,包括硬件,而 Docker 容器技术则可以和我们的宿主机共享硬件资源及操作系统,实现资源的动态分配。 Docker 容器技术可以让您快速部署应用程序,提高部署效率,减少资源浪费。 ...

    docker容器化平台*轻松构建应用程序环境*

    1. **轻松构建应用程序环境**:Docker容器包含应用程序及其所有依赖项,从操作系统到库和其他软件包,使得开发环境的搭建变得更加简单和一致。 2. **简化部署**:由于Docker容器是独立的、可移植的,因此部署到不同...

    Docker 容器入门实战.pptx

    Docker 容器入门实战 Docker 容器是一种轻量级的操作系统虚拟化技术,可以将应用程序和依赖项打包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。 Docker 简介 Docker 是 dotCloud 开源的一个基于 ...

    docker容器生命周期管理

    ### Docker 容器生命周期管理详解 #### 一、概述 Docker 容器生命周期管理是 Docker 使用中的核心概念之一,涉及到容器的创建、运行、停止、重启等多个阶段。通过掌握这些基本操作,可以帮助开发者和运维人员更加...

    详解Docker 容器跨主机多网段通信解决方案

    本文将详细讲解一种解决方案——利用MacVlan实现Docker容器跨主机多网段通信。 MacVlan,全称为MAC-level Virtual LAN,是一种Linux内核支持的网络接口技术,它允许为物理网卡创建多个子接口,每个子接口都有独立的...

    Docker容器时区调整操作

    如何检查Docker容器时区是否与宿主机一致? 1、进入宿主机, 执行以下命令: # 查看宿主机时间 [root@localhost ~]# date 2018年 06月 27日 星期三 22:42:44 CST 2、进入到容器中,执行以下命令 # 查看容器时间 ...

    docker容器热迁移

    通过与华为工程师李泽帆、邓广兴的交流合作,我们可以了解到华为在Docker容器热迁移Meetup上的探讨,并且通过邮件联系可以获取更多关于华为实现方案与现状的信息。Docker官方也尝试通过pull request的方式整合CRIU...

    云无关的方式启动Docker容器Clocker.zip

    Brooklyn用一个Dockerfile使SSH服务器在每个Docker容器中可用,之后就可以把它像任何虚拟机一样来处理了。Brooklyn接收来自于此应用、每台docker主机、每个docker容器以及每款安装了此应用的软件的传感数据,并能够...

    Docker实现同Ip网段联通的实现

    最近解决docker与宿主机同网段通信的问题,写此文章记录一下整个过程。 例如 宿主机A 和宿主机B是网络联通关系,在宿主机A上面创建了多个容器组成集群,但是我希望...2、 使用pipework为docker容器配置独立IP 安装p

Global site tag (gtag.js) - Google Analytics