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

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个小时。(bluer: 所以没有设置过的容器, 一般跟宿主机时间相差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 查看所有容器、docker容器,以便于您获取更多的相关知识。

时间: 2024-10-22 06:37:09

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

Json返回时间的格式中出现乱码问题的两种解决方案_实用技巧

前言:这段时间一直没有写博客,首先是我正在实现权限系列的绝色和操作的实现,因为这些东西在前面我们都已经说过了,所以我们就不重复的说这些了,那么我们知道,在我们使用Json返回数据的时候时间的格式一般都会变了,变成我们不认识的一些字符,那么当我们遇到这些问题的时候我们该怎么解决呢,今天我就来小说一下这个的解决方法. .发现问题 (1).正如我们在前言里面所说,我们在编写Json解析时间的时候会返回一些莫名其妙的东西,那么我们是如何解决这个问题的呢?我现在有两种方法可以解决这个问题,下面我们首先来说

三种主机(linux、windows、vps)301重定向跳转的实现方法

301重定向主要是为了将域名A跳转到域名B,更多情况下是将不带www的 域名跳转到带www的域名,那么301重定向应该怎么做呢,本文详细的介绍301重定向的做法,下面分为linux主机.windows主机以及vps主 机三种情况讲述(都以将本站域名yedward.net跳转到www.yedward.net这个为例子): (一)linux主机 对于linux虚拟主机Apache服务器,需要支持.htaccess这个文件.先去确定主机是否支持.htaccess这个文件(可以询问主机商),如果支持的话

Docker 解决获取容器获取的时间不是本地时间的问题_docker

docker 获取容器获取的时间出错问题解决: 在使用Docker部署网站的时候,无意间发现容器里面的时间竟然是美国时间,被雷到了,不过解决办法也很简单,有两种办法 1.重新启动一个容器,加上如下参数,即可使用宿主机时间 $ -v /etc/localtime:/etc/localtime:ro # docker run -d -v /etc/localtime:/etc/localtime:ro [image] 2.假如,你不想重新启动,或者不能重新启动,也没关系,可以直接把文件复制到容器内,

Linux/CentOS下的CST和UTC时间的区别以及不一致的解决方法

今天被我遇到了,相差八小时,,,tzselect过了都不行,还得用ntupdate核一下. 网上找的,备不时之需要. ~~~~~~~~~~~~~~~~   1.在linux中,用date查看时间的时候显示: 2013年 2月 17日 星期三 19:04:14 CST 世界协调时间(Universal Time Coordinated,UTC): GPS 系统中有两种时间区分,一为UTC,另一为LT(地方时)两者的区别为时区不同,UTC就是0时区的时间,地方时为本地时间,如北京为早上八点(东八区)

CentOS系统时间与UTC时间不一致的解决方法

我们在安装完Centos Linux操作系统之后,点击系统的时间发现与现在所使用的时间不一致,相差有8小时,而在安装系统的时候我们选择的时区是上海,但是CentOS Linux默认的http://www.aliyun.com/zixun/aggregation/19247.html">bios时间是utc时间(UTC是协调世界时(Universal Time Coordinated)英文缩写,是由国际无线电咨询委员会规定和推荐,并由国际时间局(BIH)负责保持的以秒为基础的时间标度.UTC

Docker缩短新开发者熟悉项目时间的五个方面

本文讲的是Docker缩短新开发者熟悉项目时间的五个方面[编者的话]本文介绍了如何使用Docker容器来减少新员工入职加入团队的准备启动时间的五个方法,包括Docker容器是唯一的依赖.容易知道如何构建环境.跨机器的便携性.一致性的开发环境以及轻量级的环境. 无论公司规模大小,加入新的开发者并且想要让其尽快达到能够干活的程度,仍然是一个显著的挑战.新开发者被雇佣和生产(作者所谓的生产可以看"注1")的时间越长,需要耗费的时间就越长,尤其是一些经验丰富的开发者. 鉴于此,有效的入职工作流

web-IIS 日志时间和系统时间不一致,相差8小时,W3C格式如何能和系统时间相同步。

问题描述 IIS 日志时间和系统时间不一致,相差8小时,W3C格式如何能和系统时间相同步. 解决方案 IIS的LOG自动是应用的UTC时间,所以要自已加时区进行转换! 下面那个勾只是LOG的命名用本地时间而以!里面的LOG所记录的依然是UTC时间! 解决方案二: 关于windows IIS日志时间与系统时间相差8小时的问题 很多做过网站的朋友在分析IIS日志的时候会发现IIS日志的时间与计算机的系统时间不符,比如在中国时区就会相差8小时.具体原因是什么呢?网 上搜索的结果十有八九让人做如下操作解

求大神帮忙破解一个电厂仿真机软件,出现“获取发送主机时间命令错误”

问题描述 有个电厂仿真机软件,分为教练员模块.操作员模块.实时数据管理系统三部分,运行实时数据管理系统时出现"发送获取主机时间命令出错",急求大神帮忙解决一下,万谢!!可提供软件安装包 解决方案

Docker挂载容器内目录到宿主机

问题描述 大家好,我才刚使用Docker.我的目标是挂载容器内的目录到宿主机,而不是将宿主机的目录挂载到容器内..关于后者我知道可以使用-v参数,但对于前者我不知道应该要如何去做.搜索了一下,据说可以用Volume卷,但我并不知道该如何去使用它,请大家给予帮助,谢谢. 解决方案 解决方案二:Dockerfile定义Volume,然后dockerrun的时候dockerrun-v<host_dir>:<volume_dir>比如1)VOLUME["/var/lib/mysq