Docker 容器与主机时间同步

Docker 容器与主机时间同步
1. 查看主机与容器时间

主机时间

root@lab1:~# date
2020年 08月 18日 星期二 14:10:04 CST

容器时间

root@lab1:~# docker exec -it 0005f07d3240 bash
root@0005f07d3240:/goapi# date
Tue Aug 18 06:10:04 UTC 2020

由于主机采用的是CST时区(China Shanghai Time,东八区时间)
容器采用的是UTC时区(Coordinated Universal Time,标准时间)相差八个时区。

2. 容器与主机时间同步的方法
2.1 共享主机的localtime

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

# docker run -ti -d --name my-nginx -v /etc/localtime:/etc/localtime:ro  docker.io/nginx  /bin/bash
2.2 复制主机的localtime
[root@slave-1 ~]# docker cp /etc/localtime 87986863838b:/etc/
2.3 创建dockerfile文件的时候,自定义该镜像的时间格式及时区
#设置时区
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。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值