Docker容器时间不同步,修改Docker时区

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 日志服务器采集到的某一个系统的日志时间不对,和实际的时间相差了8个小时,问题是出在容器的时区的设置上。docker的时区是UTC时区

今天发现日志服务器采集到的某一个系统的日志时间不对,和实际的时间相差了8个小时,我们估计问题是出在容器的时区的设置上。

1. 进入docker 容器后,查看一下时间:

#进入容器docker exec -it xxxx /bin/bash
#查看时间bash-4.4# dateMon Feb 1301:32:02 UTC 2023


果然时区是UTC时区


2. 查看一下docker中操作系统的版本,是ununtu 20.04


bash-4.4# cat /proc/versionLinux version 5.4.0-126-generic (buildd@lcy02-amd64-072) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #142-Ubuntu SMP Fri Aug 26 12:12:57 UTC 2022

3. 再检查相应的docker的Dockerfile



FROM anapsix/alpine-java:8u202b08_jdk_unlimited
RUN mkdir-p /app/log 
WORKDIR /app
ADD ./abc.jar ./abc.jar
ENTRYPOINT ["/bin/sh", "-c", "java -jar abc.jar"]

## 解决问题

1. 对Dockerfile进行修改,增加"时区配置"后如下:


FROM anapsix/alpine-java:8u202b08_jdk_unlimited
ENV TZ Asia/Shanghai
RUN ln-sf /usr/share/zoneinfo/${TZ} /etc/localtime
RUN echo${TZ} > /etc/timezone
RUN mkdir-p /app/log 
WORKDIR /app
ADD ./abc.jar ./abc.jar
ENTRYPOINT ["/bin/sh", "-c", "java -jar abc.jar"]


**发现还是不好使,时区还是原来的UTC时区!!!**


2. 检查后,发现原来缺少tzdata包


于是对Dockerfile进行修改,"安装tzdata包"后如下:


FROM anapsix/alpine-java:8u202b08_jdk_unlimited
RUN apk add --no-cache tzdata
ENV TZ Asia/Shanghai
RUN ln-sf /usr/share/zoneinfo/${TZ} /etc/localtime
RUN echo${TZ} > /etc/timezone
RUN mkdir-p /app/log 
WORKDIR /app
ADD ./abc.jar ./abc.jar
ENTRYPOINT ["/bin/sh", "-c", "java -jar abc.jar"]


3. 开始构建


sudo docker run --name cloud-render-oss-v3 -dit-p8000:8000cloud-render-oss:v3


Step 1/13 : FROM anapsix/alpine-java:8u202b08_jdk_unlimited
---> 4357b436992a
Step 2/13 : MAINTAINER abc:1.0
---> Using cache
---> 7b43d961907c
Step 3/13 : RUN apk add --no-cache tzdata
---> Running in db41073e58ab
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
(1/1) Installing tzdata (2020a-r0)
Executing busybox-1.28.4-r3.trigger
OK: 25 MiB in24 packages
Removing intermediate container db41073e58ab
---> e1cbf2ea9881
Step 4/13 : ENV TZ Asia/Shanghai
---> Running in d8689874d96d
Removing intermediate container d8689874d96d
---> b91855f5ae60
Step 5/13 : RUN echo${TZ}---> Running in e92b6f6aab22
Asia/Shanghai
Removing intermediate container e92b6f6aab22
---> 6eb50e8003f3
Step 6/13 : RUN ln-sf /usr/share/zoneinfo/${TZ} /etc/localtime
---> Running in 9bd7a1005cfd
Removing intermediate container 9bd7a1005cfd
---> 49270005a068
Step 7/13 : RUN echo${TZ} > /etc/timezone
---> Running in fdccfb507a2c
Removing intermediate container fdccfb507a2c
---> d573b3b66e4f


4. 再次进入容器,查看时间


bash-4.4# dateMon Feb 1309:50:49 CST 2023



大功告成!

相关文章
|
2天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
116 77
|
3天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
26 3
|
10天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
38 6
|
10天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
20 5
|
10天前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
31 3
|
10天前
|
存储 安全 数据安全/隐私保护
Docker 容器化应用管理更加高效,但数据安全和业务连续性成为关键。
在数字化时代,Docker 容器化应用管理更加高效,但数据安全和业务连续性成为关键。本文探讨了 Docker 应用的备份与恢复策略,涵盖备份的重要性、内容、方法及常见工具,制定备份策略,恢复流程及注意事项,并通过案例分析和未来趋势展望,强调备份与恢复在保障应用安全中的重要性。
20 2
|
15天前
|
Kubernetes Linux 开发者
深入探索容器化技术——Docker 的实战应用
深入探索容器化技术——Docker 的实战应用
46 5
|
16天前
|
开发者 Docker Python
从零开始:使用Docker容器化你的Python Web应用
从零开始:使用Docker容器化你的Python Web应用
29 1
|
13天前
|
存储 Cloud Native 开发者
深入探索容器化技术——Docker的实战应用
深入探索容器化技术——Docker的实战应用
31 0
|
存储 关系型数据库 测试技术
docker学习系列13 实现 基于pxc 的mysql 多节点主主同步
背景 MySQL本身是开源的,有些公司或社区基于MySQL发布了新的分支,如有名的MariaDB。 在介绍 Percona 之前,首要要介绍的是XtraDB存储引擎,在MYSQL中接触比较多的是MyISAM 和 InnoDB这两个存储引擎。
1933 0