`
haiouc
  • 浏览: 120208 次
  • 性别: 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 来实现跨...

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

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

    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通过给每台主机分配一个子网段,确保容器跨主机的互通性。...

    Java中Docker容器的工作原理与实现

    Docker容器工作原理基于容器化平台,通过Linux的命名空间和控制组技术来隔离容器,确保了应用程序能在轻量级、一致的环境中运行,不受宿主机环境的影响,从而提高应用程序的稳定性和安全性。 Docker容器的创建和...

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

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

    Docker容器指南.zip

    Docker容器与传统虚拟机的主要区别在于虚拟机需要运行一个完整的操作系统,而Docker容器则是在宿主机的操作系统上运行,容器本身不包含操作系统。 Docker引擎是Docker技术的核心,它是一个客户端-服务器应用,包括...

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

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

    Docker容器化技术入门与实践基础教程.md

    Docker容器化技术入门与实践基础教程知识点整理: 1. Docker简介:Docker是一个开源的应用容器引擎,它允许开发者将应用程序及其依赖打包进一个轻量级的容器中,然后发布到任何支持Linux的机器上,实现应用的快速...

    Docker容器技术架构实践

    Docker容器中包含软件组件以及其所有依赖项,如二进制文件、库、配置文件、脚本等,这为应用的移植性和一致性提供了保证。 Docker的工作原理涉及到镜像和容器的概念。Docker镜像是一个轻量级的、独立的、可执行的包...

    docker容器介绍​.docx

    与传统虚拟机相比,Docker 容器共享操作系统内核,不需运行完整的操作系统实例,因此更加轻便且启动速度更快。 容器的启动、停止和管理是 Docker 基本操作的关键部分。启动容器通常使用 docker run 命令,其基本...

    Docker容器技术入门概述.docx

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

    深度解析Docker宿主机与容器间高效文件共享方案及其实现技巧

    使用场景及目标:①解决Docker容器与宿主机文件共享中的常见问题,如权限问题、数据一致性和性能瓶颈;②适用于个人开发环境、微服务架构和大规模容器集群部署场景。 阅读建议:本文内容详尽,不仅涵盖理论知识,还...

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

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

    docker容器化技术基础

    安装和部署Docker容器化技术的过程可以分为几个步骤。首先,需要在目标服务器或个人计算机上安装Docker。安装过程涉及到配置必要的系统工具和添加Docker的软件源。例如,可以在基于Linux的系统中,使用yum命令安装...

Global site tag (gtag.js) - Google Analytics