Docker容器部署项目少了8个小时,问题解决&&Dockerfile修改linux时区

情景回顾

打包好的jar包通过Dockerfile构建成一个镜像后,通过docker-compose.yml文件实现对 Docker 容器集群的快速编排,当这一切都很顺利进行时,发现在走业务的时候,产生的时间戳存放在通过Docker启动的mysql容器中,时间比当前系统时间少了8个小时;
可能原因如下:

1、时区问题

在数据库连接的url中如果设置了serverTimezone=UTC,连接时不报错,但是在产生当前系统时间戳的时候往往会少了8个小时,这是因为UTC是全球的标准时间,但是我们使用的是北京时区(东八区),会比UTC多了8个小时,可以通过DataSource.url中添加

// 北京时间
serverTimezone=GMT%2B8
// 上海时间
serverTimezone=Asia/Shanghai

但是问题在这里并没有得到解决,于是在docker容器中查询了当前系统时间,发现当前容器系统时间少了8个小时,于是我们需要去修改容器里边的系统时间

2、修改docker容器系统时间

通过这条命令去修改当前容器系统时间,然后在重启容器

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

这是我们再次查看当前容器系统时间,发现已经是东八区的时间,这时我以为问题解决了,没想到再次测试业务时,发现问题还没有解决,而且后端系统日志的时间依旧是少了8个小时,这时要去查看jvm是如何获取系统时间

3、修改JVM获取时间的文件

通过百度百科得知,运行在容器上JVM是通过/etc/timezone去获取时区的,我们通过以下echo去重写/etc/timezone,修改为东八区

RUN echo "Asia/Shanghai" > /etc/timezone

到这里问题已经全部解决了,但是又想到,如果每次等到容器启动后去修改配置,在关闭容器,重新build容器后在启动,实在是很没必要哈哈,所以我在构建Dockerfile时就要解决这些问题,添加以下命令

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone

以上乃个人拙见,如有不当,请多指教

Docker容器部署项目少了8个小时,问题解决Dockerfile修改linux时区相关推荐

  1. Docker容器部署CDH

    Docker容器部署CDH 文章目录 Docker容器部署CDH 一. 概述 1.1目的 1.2 linux服务 1.3 容器服务 1.4 端口相关 二. 具体操作流程 2.1 安装docker[绿色 ...

  2. Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  3. 【云服务器】基于docker容器部署Halo项目的个人博客搭建并部署到云服务器

    目录 1 docker快速部署halo个人博客 2 主题设置(本文使用的是M酷Joe 2.0版本的主题,下载链接放在下面了) 2.1 API报错解决方案 2.2 首页分栏设置 2.3 轮播图的修改 2 ...

  4. linux运行dock打包的镜像,Linux部署之Docker方式部署项目

    Linux部署之Docker方式部署项目 1. 使用Docker对前端vue项目进行部署 1.1 环境准备 服务器或者虚拟机上先安装好Nginx和相关配置 docker pull nginx 拉去最新 ...

  5. Docker 容器部署 Consul 集群

    Docker 容器部署 Consul 集群 Consul 介绍 Consul 提供了分布式系统的服务发现和配置的解决方案.基于go语言实现.并且在git上开放了源码consul-git.consul还 ...

  6. 如何使用Docker容器部署O2OA(翱途)开发平台与OnlyOffice的集成版本?

    O2OA(翱途)开发平台[下称O2OA平台或者O2OA]默认可以和OnlyOffice进行集成来实现在线文档编辑以及流程集成.开发者可以直接安装O2OA官网的OnlyOffice+O2Server的D ...

  7. docker容器部署wordpress,使用原有nginx代理并开启https

    docker容器部署wordpress,使用原有nginx代理并开启https 搭建环境 申请免费证书 第一步 规划目录 第二部 docker-compose配置 第三步 nginx配置 第四步 配置 ...

  8. Docker Compose部署项目到容器-基于Tomcat和mysql的商城项目(附源码和sql下载)

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  9. Docker中部署项目到容器

    场景 使用Dockerfile定制镜像来部署Tomcat项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99105626 D ...

最新文章

  1. 【搜遍互联网,集百家之长】环境配置从入门到放弃之Mac环境下,安装XAMPP,给phpstorm安装Xdebug调试工具...
  2. 基于jquery的一个javascript前端框架实现
  3. 信息熵和交叉熵的细节理解
  4. 什么是Ruby on Rails
  5. 2015-12-01 存储过程
  6. hugo博客html创建目录,Hugo博客添加搜索功能
  7. Shell命令打包Android apk
  8. 入门编程(小白写代码的神器)
  9. win10打开计算机代码,win10打开应用提示0xe06d7363错误代码
  10. 程序员有话说,只务正业就够了吗?
  11. 磁盘阵列柜性能介绍(二)
  12. three.js流动线
  13. C#,格式化json数据的源代码
  14. 如何成为一个优秀的营销人
  15. Powershell管理系列(三)2012 AD域用户UPN名称还原
  16. 开花算法_数据科学即将开花,但其根源已经存在了很长时间
  17. Git 删除本地代码文件后重新拉取服务器最新代码
  18. 塔式服务器 机架服务器_优化服务器在机架上的分布
  19. Pixel2Pixel:卡通照片真人化
  20. 无锡职业技术学院计算机好,无锡职业技术学院王牌专业有哪些及专业排名

热门文章

  1. 7-6 输出斐波那契数列的前n项 (10 分)
  2. 成年人每天要喝多少水?
  3. idea启动web项目,自带tomcat找不到解决方法(个例)
  4. 全球及中国云网络安全行业风险评估及运营前景展望报告2021年版
  5. 电梯司机是做什么的? (施工升降机)
  6. 35款优秀的 SpringBoot/SpringCloud 开源项目,开发脚手架,总有一款适合你...
  7. 欧姆龙 CJ1W-SCU模块使用通配符+结束码实现非固定长度数据的接收
  8. 云原生虚拟化:基于 Kubevirt 构建边缘计算实例
  9. IOS开发-学习论坛和开源网站
  10. Linux驱动之阻塞与非阻塞