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



大功告成!

相关文章
|
17小时前
|
Ubuntu Docker 容器
docker容器保存和导入
docker容器保存和导入
6 0
|
19小时前
|
Prometheus 监控 Cloud Native
构建高效稳定的Docker容器监控体系
【5月更文挑战第14天】 在现代微服务架构中,Docker容器作为应用部署的基本单元,其运行状态的监控对于保障系统稳定性和性能至关重要。本文将探讨如何构建一个高效且稳定的Docker容器监控体系,涵盖监控工具的选择、关键指标的采集、数据可视化以及告警机制的设计。通过对Prometheus和Grafana的整合使用,实现对容器资源利用率、网络IO以及应用健康状态的全方位监控,确保系统的高可用性和故障快速响应。
|
19小时前
|
Prometheus 监控 Cloud Native
构建高效稳定的Docker容器监控体系
【5月更文挑战第13天】在微服务架构和容器化部署日益普及的背景下,对Docker容器的监控变得尤为重要。本文将探讨一种构建高效稳定Docker容器监控体系的方法,通过集成Prometheus和cAdvisor工具,实现对容器资源使用情况、性能指标和运行状态的实时监控。同时,结合Grafana进行数据可视化,为运维人员提供直观的分析界面,以便及时发现和解决潜在问题,保障系统的高可用性和稳定性。
18 6
|
19小时前
|
存储 安全 开发者
如何删除 Docker 镜像、容器和卷?
【5月更文挑战第11天】
13 2
如何删除 Docker 镜像、容器和卷?
|
19小时前
|
NoSQL Redis Docker
Mac上轻松几步搞定Docker与Redis安装:从下载安装到容器运行实测全程指南
Mac上轻松几步搞定Docker与Redis安装:从下载安装到容器运行实测全程指南
19 0
|
19小时前
|
存储 安全 数据安全/隐私保护
【Docker 专栏】Docker 容器化应用的备份与恢复策略
【5月更文挑战第9天】本文探讨了Docker容器化应用的备份与恢复策略,强调了备份在数据保护、业务连续性和合规要求中的关键作用。内容涵盖备份的重要性、内容及方法,推荐了Docker自带工具和第三方工具如Portainer、Velero。制定了备份策略,包括频率、存储位置和保留期限,并详细阐述了恢复流程及注意事项。文章还提及案例分析和未来发展趋势,强调了随着技术发展,备份与恢复策略将持续演进,以应对数字化时代的挑战。
【Docker 专栏】Docker 容器化应用的备份与恢复策略
|
19小时前
|
缓存 关系型数据库 数据库
【Docker 专栏】Docker 与容器化数据库的集成与优化
【5月更文挑战第9天】本文探讨了Docker与容器化数据库集成的优势,如快速部署、环境一致性、资源隔离和可扩展性,并列举了常见容器化数据库(如MySQL、PostgreSQL和MongoDB)。讨论了集成方法、注意事项、优化策略,包括资源调整、缓存优化和监控告警。此外,强调了数据备份、恢复测试及性能评估的重要性。未来,随着技术发展,二者的集成将更紧密,为数据管理带来更多可能性。掌握此技术将应对数字化时代的机遇与挑战。
【Docker 专栏】Docker 与容器化数据库的集成与优化
|
19小时前
|
监控 Kubernetes Docker
【Docker 专栏】Docker 容器内应用的健康检查与自动恢复
【5月更文挑战第9天】本文探讨了Docker容器中应用的健康检查与自动恢复,强调其对应用稳定性和系统性能的重要性。健康检查包括进程、端口和应用特定检查,而自动恢复则涉及重启容器和重新部署。Docker原生及第三方工具(如Kubernetes)提供了相关功能。配置检查需考虑检查频率、应用特性和监控告警。案例分析展示了实际操作,未来发展趋势将趋向更智能和高效的检查恢复机制。
【Docker 专栏】Docker 容器内应用的健康检查与自动恢复
|
19小时前
|
存储 安全 数据库
【Docker 专栏】Docker 容器内应用的状态持久化
【5月更文挑战第9天】本文探讨了Docker容器中应用状态持久化的重要性,包括数据保护、应用可用性和历史记录保存。主要持久化方法有数据卷、绑定挂载和外部存储服务。数据卷是推荐手段,可通过`docker volume create`命令创建并挂载。绑定挂载需注意权限和路径一致性。利用外部存储如数据库和云服务可应对复杂需求。最佳实践包括规划存储策略、定期备份和测试验证。随着技术发展,未来将有更智能的持久化解决方案。
【Docker 专栏】Docker 容器内应用的状态持久化
|
19小时前
|
机器学习/深度学习 监控 Kubernetes
【Docker 专栏】Docker 容器内服务的自动扩展与缩容
【5月更文挑战第9天】本文探讨了Docker容器服务的自动扩展与缩容原理及实践,强调其在动态业务环境中的重要性。通过选择监控指标(如CPU使用率)、设定触发条件和制定扩展策略,实现资源的动态调整。方法包括云平台集成和使用Kubernetes等框架。实践中,电商平台和实时数据处理系统受益于此技术。注意点涉及监控数据准确性、扩展速度和资源分配。未来,智能算法将提升扩展缩容的效率和准确性,成为关键技术支持。
【Docker 专栏】Docker 容器内服务的自动扩展与缩容