记录一次docker容器引起的时间相差8h的问题

一、背景

系统打印日志时间小8h,部分插入mysql的日期却大8h,简直诡异。
测试时间是上午10:05
在这里插入图片描述
经过排查,mysql设置的时区,链接url设置的时区都是ok的。而且有其他服务时间正常,故排除MySQL的问题。

二、排查

2.1 查看服务器时间 ok的

[root@nb002 ~]# date
2023年 05月 05日 星期五 10:07:24 CST

在这里插入图片描述

2.2 查看所在容器系统时间 不对少8h

查看所在容器系统时间命令:

docker exec -it  容器id date
[root@nb002 ~]# docker exec -it f9bd68ffc5d0  date
Fri May  5 02:02:02 UTC 2023

在这里插入图片描述

2.3 再看一个时间正确的服务所在容器的系统时间 ok的

[root@nb002 ~]# docker exec -it 19cb8f93385d  date
Fri May  5 10:02:40 CST 2023

在这里插入图片描述

三、解决办法

3.1 修改基础镜像系统时区

找到服务Dockerfile的基础镜像对应的容器

[root@nb001 dicjdk8]# docker ps | grep jdk
992ca6b4fcca   openjdk:8                                  "bash"                   10 months ago   Up 10 months                                                                                                   dicjdk8

查看容器的时间,发现是少8h的

[root@nb001 dicjdk8]# docker exec -it 992ca6b4fcca date
Fri May  5 02:27:34 UTC 2023

进入容器修改系统时区

[root@nb001 dicjdk8]# docker exec -it 992ca6b4fcca bash

找到上海时区的位置(/usr/share/zoneinfo/Asia下的Shanghai)

root@992ca6b4fcca:/# cd /usr/share/zoneinfo/Asia
root@992ca6b4fcca:/usr/share/zoneinfo/Asia# ls
Aden    Ashgabat   Bangkok   Chita       Damascus   Gaza         Irkutsk    Kamchatka  Kolkata       Macau     Novokuznetsk  Pyongyang  Saigon     Srednekolymsk  Thimbu         Ulan_Bator   Yangon
Almaty  Ashkhabad  Barnaul   Choibalsan  Dhaka      Harbin       Istanbul   Karachi    Krasnoyarsk   Magadan   Novosibirsk   Qatar      Sakhalin   Taipei         Thimphu        Urumqi       Yekaterinburg
Amman   Atyrau     Beirut    Chongqing   Dili       Hebron       Jakarta    Kashgar    Kuala_Lumpur  Makassar  Omsk          Qostanay   Samarkand  Tashkent       Tokyo          Ust-Nera     Yerevan
Anadyr  Baghdad    Bishkek   Chungking   Dubai      Ho_Chi_Minh  Jayapura   Kathmandu  Kuching       Manila    Oral          Qyzylorda  Seoul      Tbilisi        Tomsk          Vientiane
Aqtau   Bahrain    Brunei    Colombo     Dushanbe   Hong_Kong    Jerusalem  Katmandu   Kuwait        Muscat    Phnom_Penh    Rangoon    Shanghai   Tehran         Ujung_Pandang  Vladivostok
Aqtobe  Baku       Calcutta  Dacca       Famagusta  Hovd         Kabul      Khandyga   Macao         Nicosia   Pontianak     Riyadh     Singapore  Tel_Aviv       Ulaanbaatar    Yakutsk

```shell
# 查看容器内当前的时区 是UTC
root@992ca6b4fcca:/usr/share/zoneinfo/Asia# cd /etc/
root@992ca6b4fcca:/etc# cat localtime
TZif2UTCTZif2UTC
UTC0

将Asia/Shanghai覆盖当前时区

root@992ca6b4fcca:/etc# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
root@992ca6b4fcca:/etc# date
Fri May  5 10:30:40 CST 2023
root@992ca6b4fcca:/etc# 

3.2 修改Java所用时区

查看当前时区:是UTC

root@992ca6b4fcca:/etc# cat /etc/timezone
Etc/UTC

将Asia/Shanghai覆盖当前Java所用时区

echo /usr/share/zoneinfo/Asia/Shanghai > /etc/timezone

再次查看确认:

root@992ca6b4fcca:/usr/share/zoneinfo# cat /etc/timezone
/usr/share/zoneinfo/Asia/Shanghai

最后exit退出容器

3.3 重新打包docker镜像

命令:

docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]

完整示例:

docker commit -a "wangdy" 992ca6b4fcca reg.wangdy.com:9443/k8snb/openjdk:dic-cst-jdk8

3.4 推送到docker镜像仓库

这里是harbor

docker push reg.wangdy.com:9443/k8snb/openjdk:dic-cst-jdk8

3.5 对于有问题的服务,重新打包部署

修改Dockerfile

FROM reg.wangdy.com:9443/k8snb/openjdk:dic-cst-jdk8
ARG app
ADD <APP> app.jar
RUN ["/bin/bash", "-c", "chmod 777 app.jar "]
CMD java -Xms512M -Xmx2048M -jar /app.jar --server.port=8080

3.6 测试,看时间

之前错误的日志时间:已正确。
在这里插入图片描述

之前错误功能的时间: 已正确。
在这里插入图片描述

END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/18453.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

聚焦丨酷雷曼荣列XRMA联盟成员单位

自“元宇宙”概念兴起之初&#xff0c;酷雷曼VR所属北京同创蓝天云科技有限公司就积极布局、探索和实践。2022年12月&#xff0c;酷雷曼VR成功加入虚拟现实与元宇宙产业联盟&#xff08;XRMA&#xff09;&#xff0c;正式被接纳为联盟成员单位&#xff0c;意味着酷雷曼公司将进…

【电动车】基于双层凸优化的燃料电池混合动力汽车研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清…

rosbag相关进阶操作

一些很好用的网站 时间戳在线转换网页 旋转矩阵、四元数、绕轴旋转、欧拉角在线转换网页 四元数、欧拉角可视化在线转换网页 一、按时间截取bag 使用如下代码&#xff1a; rosbag filter 原始包名.bag 截取后的包名.bag "t.to_sec() > 开始时间 and t.to_sec() <…

初识Elasticsearch

初识Elasticsearch Elasticsearch 是一个分布式&#xff0c;RESTful 风格的搜索和数据分析引擎。它能够提供实时的搜索与数据分析功能&#xff0c;且能够将几乎所有类型的数据存储和搜索&#xff0c;包括结构化和非结构化数据。 在该博文中&#xff0c;我们将介绍 Elasticsea…

在CentOS上安装Jenkins并配置Docker

文章目录 步骤1 - 安装Java 11步骤2 - 安装Jenkins步骤3 - 安装Docker步骤4 - 配置Docker Cloud步骤 5 - 验证步骤 6 - 可能会遇到的问题 在本教程中&#xff0c;我们将展示如何在CentOS上安装Jenkins和Docker&#xff0c;并将它们配置在同一台机器上&#xff0c;使Jenkins能够…

开发必备,开源 or 免费的 AI 编程助手

AI 大模型的火热&#xff0c;让开发圈近来如虎添翼&#xff0c;各种各样基于 AI 技术的开发者工具和新范式不断涌现&#xff0c;尤其是 Github 和 OpenAI 共同推出的 Copilot X &#xff0c;更是一骑绝尘。本文推荐一些开源 or 免费的 AI 编程工具&#xff0c;不妨试着用起来。…

当今自然语言处理领域中的成功之路:Transformer模型

当今自然语言处理领域中最重要和最成功的模型之一是Transformer模型。它是一种基于自注意力机制的神经网络模型&#xff0c;最初由Google公司的研究人员提出&#xff0c;并被广泛应用于机器翻译、文本生成、情感分析等任务中。 Transformer模型之所以被广泛使用&#xff0c;是因…

边缘化你必须知道的一件事!(FEJ知识点总结)

vins和g2o边缘化的异同&#xff1a;(已经做到ppt里面了&#xff0c;简单回顾一下) 1.《视觉slam14讲》中提及的边缘化(G2O边缘化)是在计算求解过程中&#xff0c;先消去路标点变量&#xff0c;实现先求解相机位姿&#xff0c;然后再利用求解出来的相机位姿反过来计算路标点的过…

springboot第七章 结合Dubbo

实现Dubbo分布式框架&#xff0c;需要公共接口maven项目&#xff0c;需要服务提供者springboot项目&#xff0c;需要服务消费者springboot项目。 因为公共接口只有数据类和接口&#xff0c;后期提供者和消费者需要根据maven唯一坐标来导入公共接口项目的jar包&#xff0c;因此公…

GraphHopper调研笔记

一、 GraphHopper GraphHopper是一种快速且内存有效的Java导航引擎&#xff0c;默认使用OSM和GTFS数据&#xff0c;也可导入其他的数据源。支持CH&#xff08;Contraction Hierarchies&#xff09;、A*、Dijkstra算法。 1、应用介绍 graphhopper有以下几种常见的地图应用&am…

25000 字详解 23 种设计模式(多图 + 代码)

25000 字详解 23 种设计模式&#xff08;多图 代码&#xff09; 目录 创建型模式结构型模式行为型模式总结 前言 一直想写一篇介绍设计模式的文章&#xff0c;让读者可以很快看完&#xff0c;而且一看就懂&#xff0c;看懂就会用&#xff0c;同时不会将各个模式搞混。 设计…

前端项目的通用优化策略

一、虚拟滚动 当我们开发的时候&#xff0c;遇到大数据加载&#xff0c;页面卡顿的问题应该如何处理&#xff1f;大多数情况下&#xff0c;我们都是尽量通过分页的方式处理这类问题&#xff0c;但是总有一些特殊的情况我们必须把数据全部加载到前端进行处理。我曾经遇到过一个…

MySQL入门

创建数据库 用CREATE DATABASE关键字&#xff08;也可以小写但建议关键字用大写方便区分&#xff09;创建一个名为“mydatabase”的数据库。 CREATE DATABASE mydatabase; 如果名称和关键字相撞&#xff0c;可以用Esc键下面的反引号括起来&#xff08;关键字会显示蓝色&#…

kafka安装及配置

1. 下载 下载地址&#xff1a;Apache Kafka 我这里下载的是 3.2.1 版本。 2. 上传并解压 上传到 linux 下的 /home/software/ 目录下&#xff0c;然后解压 kafka_2.13-3.2.1.tgz 包到/usr/local/ cd /home/software tar -zxvf kafka_2.13-3.2.1.tgz -C /usr/local # -C 选…

处理日期和时间的 chrono 库

C11 中提供了日期和时间相关的库 chrono&#xff0c;通过 chrono 库可以很方便地处理日期和时间&#xff0c;为程序的开发提供了便利。chrono 库主要包含三种类型的类&#xff1a;时间间隔duration、时钟clocks、时间点time point。 1. Ratio 时间精度(节拍) std::chrono::ra…

【PHP在线定制商城网站源码V3.0】开源的DIY在线定制商城系统+在线礼品定制

源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/87637177 PHP在线定制商城网站源码&#xff0c;免费开源、免费下载。本商城基于mycncart开发。安装成功后即可浏览&#xff0c;你可以在后台->安装扩展功能上传安装插件&#xff0c;在代码调整中点击刷…

zlmediakit 新增可以使用硬件加速的转码http api接口方法

根据项目需求&#xff0c;我们需要使用硬件解码的方式进行网络摄像头数据帧的解析&#xff0c;给到算法模块使用 1、通过ffmpeg命令实验&#xff0c;ffmpeg -i IPC_URL -f rtsp rtsp://*/live 该命令默认是使用cpu进行解码的&#xff0c;我们需要使用GPU进行解码。 2、ffmpe…

如何进行DNS优化

在互联网时代&#xff0c;网站的访问速度直接影响着用户体验和转化率。而DNS(Domain Name System)作为域名解析系统&#xff0c;负责将域名转换为IP地址&#xff0c;是网站访问速度的重要因素之一。因此&#xff0c;DNS优化成为了提升网站速度的重要手段之一。 DNS优化到底是什…

API接口的对接流程和注意事项

一、对接API数据接口的步骤通常包括以下几个部分&#xff1a; 了解API&#xff1a;首先需要详细了解API的基本信息、请求格式、返回数据格式、错误码等相关信息。可以查看API的官方文档或者使用API探索工具。同时&#xff0c;还需要明确数据请求的频率和使用权限等限制。 ​​测…

leetcode:环形链表(详解)

前言&#xff1a;内容包括-题目&#xff0c;代码实现&#xff0c;大致思路&#xff0c;代码解读&#xff0c;拓展问题 题目&#xff1a; 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&…