在Docker容器创建好之后,可能会发现容器时间跟宿主机时间不一致,这就需要同步它们的时间,让容器时间跟宿主机时间保持一致。如下:

# 宿主机时间
[root@slave-1 ~]# date
Fri May 12 11:20:30 CST 2017# 容器时间
[root@slave-1 ~]# docker exec -ti 87986863838b /bin/bash
root@87986863838b:/# date
Fri May 12 03:20:33 UTC 2017

发现两者之间的时间相差了八个小时!
宿主机采用了CST时区,CST应该是指(China Shanghai Time,东八区时间)
容器采用了UTC时区,UTC应该是指(Coordinated Universal Time,标准时间)

统一两者的时区有下面几种方法

1)共享主机的localtime

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

# docker run -ti -d --name my-nginx -v /etc/localtime:/etc/localtime:ro  docker.io/nginx  /bin/bash

2)复制主机的localtime

[root@slave-1 ~]# docker cp /etc/localtime 87986863838b:/etc/# 然后再登陆容器,查看时间,发现已经跟宿主机时间同步了
[root@slave-1 ~]# docker exec -ti 87986863838b /bin/bash
root@87986863838b:/# date
Fri May 12 11:26:19 CST 2017

3)创建dockerfile文件的时候,自定义该镜像的时间格式及时区。

在dockerfile文件里添加下面内容:

......
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命令生成镜像使用即可,使用dockerfile创建的镜像的容器改变了容器的时区,
这样不仅保证了容器时间与宿主机时间一致(假如宿主机也是CST),并且像上面使用tomcat作为父镜像的话,JVM的时区也是CST,
这样tomcat的日志信息的时间也是和宿主机一致的,像上面那两种方式只是保证了宿主机时间与容器时间一致,JVM的时区并没有改变,tomcat日志的打印时间依旧是UTC。

docker容器 与 系统时间同步相关推荐

  1. Docker容器与系统时间同步

    Docker容器创建好之后,会发现容器时间跟宿主机时间不一致,如下: [root@localhost ~]# date 2022年 04月 22日 星期五 12:24:01 CST bash-5.1# ...

  2. docker多个容器一起打包_详解Docker 容器基础系统镜像打包

    因为容器本身是共享宿主操作系统内核,所以容器基础系统镜像包本身就是一个标准的 Linux rootfs + 用户自定义的工具.根据这个思路,我们就可以构建一个自己的容器基础系统镜像. 构建标准的 Li ...

  3. 【Docker】容器与系统时间同步

    在Docker容器创建好之后,可能会发现容器时间跟宿主机时间不一致,这就需要同步它们的时间,让容器时间跟宿主机时间保持一致.如下: 宿主机时间 [root@slave-1 ~]# date Fri M ...

  4. 服务器系统打包,详解Docker 容器基础系统镜像打包

    因为容器本身是共享宿主操作系统内核,所以容器基础系统镜像包本身就是一个标准的 Linux rootfs + 用户自定义的工具.根据这个思路,我们就可以构建一个自己的容器基础系统镜像. 构建标准的 Li ...

  5. Linux怎么查询全部容器时间,linuxea:如何单单修改docker容器的系统时间

    一般情况下,我们仅仅需要修改容器的时间与我们宿主机的实际实际一致即可, 我们知道,默认情况下docker容器是不允许访问系统时钟,但是有一款开源的软件使这样的需求变成了可能.此lib拦截用于检索当前时 ...

  6. dumb-init:一个Docker容器初始化系统

    容器化环境中,往往直接运行应用程序,而缺少初始化系统(如systemd.sysvinit等).这可能需要应用程序来处理系统信号,接管子进程,进而导致容器无法停止.产生僵尸进程等问题.dumb-init ...

  7. 本地文件上传至docker容器

    本地文件上传至docker容器 Linux系统下区别对比(~./home与/root) Linux下~./home与/root的区别: 1.在root用户下,~等同于/root 2.在普通用户下,~等 ...

  8. Docker学习总结(44)——Docker容器时间与主机时间不一致的三种解决方式

    分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程 问题 我们在使用docker时发现Docker容器时间与主机时间经常出现不一致的情况 ...

  9. Linux环境打包Qt程序并部署到Docker容器

    Linux环境打包Qt程序并部署到Docker容器 根据项目需要,将UKylin版本的qt应用程序打包并且部署到docker容器中 系统版本 UKylin版本:Ubuntu18.04 Docker镜像 ...

最新文章

  1. python中的time库安装步骤-python中time模块怎么用
  2. lock锁和monitor.enter锁
  3. oracle数据库删除百万级数据库,数据库SQL优化大总结之 百万级数据库优化方案...
  4. 三行代码生成验证码并转换成base64
  5. 从自监督到全监督!Google 提出新损失函数SupCon,准确率提升2%!
  6. Git使用出现git@github.com: Permission denied (publickey)
  7. [LeetCode] Missing Ranges 缺失区间
  8. SpringSecurity系列(一) 初识 Spring Security
  9. CAD中 OLE不能旋转_【设计图文】大空间旋转喷头零件的数控加工工艺设计、编程与加工(有全套cad图+程序+中英文翻译)...
  10. 【详细】小程序模板使用教程
  11. 删除脚注分割线(word左下角的横线)
  12. AVR单片机ATmega16之初识PWM模式
  13. QQ空间花匠免费代码
  14. 拖拽 开发 easyui php,jQuery EasyUI 教程-Draggable(拖动)
  15. 永磁体磁偏角测试原理和测量设备介绍
  16. Prometheus监控Redis的配置
  17. 计算机科学版面费,《计算机科学》版面费
  18. 一个牛人给Java初学者的建议(必看篇)
  19. 江湖风云录-洛阳金刀门
  20. Mysql错误:Table 'xxx'is marked as crashed and should be repaired

热门文章

  1. python字符串find函数实现_python中实现查找字符串的find函数
  2. device or resource busy_北海or涠洲岛旅游攻略(收藏篇)
  3. 用 Flask 来写个轻博客 (11) — M(V)C_创建视图函数
  4. Linux_LVM、RAID_RHEL7
  5. KEIL MDK LIB库文件的制作
  6. 嘿!我用python帮我干这些事
  7. docker-compose:使用docker-compose部署nginx+supervisor+uwsgi+flask程序(mongodb)
  8. 人人都是 DBA(VII)B 树和 B+ 树
  9. 无刷新上传图片,ajax 和 iframe
  10. 高德地图SDK大致使用