docker中容器时间和宿主机时间不同步怎么办

方法:1、利用“docker run -name-v ”命令共享主机的localtime;2、利用“docker cp /etc/localtime:容器ID/etc/localtime”命令复制主机的localtime。

docker中容器时间和宿主机时间不同步怎么办插图

本教程操作环境:linux7.3系统、docker-1.13.1版、Dell G3电脑。

docker中容器时间和宿主机时间不同步怎么办

必须统一两者的时区。

共享主机的localtime (方法一)

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

1

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

复制主机的localtime (方法二)

1

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

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

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

1

select now() from dual;

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

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

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

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

1

2

3

4

5

6

7

8

9

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

版权声明:本文采用知识共享 署名4.0国际许可协议BY-NC-SA 进行授权
文章作者:jiuhucn
文章链接:https://www.jiuhucn.com/2022/03/24/1941.html
免责声明:本站为资源分享站,所有资源信息均来自网络,您必须在下载后的24个小时之内从您的电脑中彻底删除上述内容;版权争议与本站无关,所有资源仅供学习参考研究目的,如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
本站为非盈利性站点,并不贩卖软件,不存在任何商业目的及用途,网站会员捐赠是您喜欢本站而产生的赞助支持行为,仅为维持服务器的开支与维护,全凭自愿无任何强求。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>