【Docker 镜像时区设置】莫问天涯路几重,轻衫侧帽且从容。这篇文章主要讲述Docker 镜像时区设置相关的知识,希望能为你提供帮助。
Docker 镜像时区设置Docker image时区设置错误或者未设置,现象就是应用录入数据库的数据和现有时间差8个小时。
起因:为了修复老的镜像漏洞,同时为了给镜像瘦身,做了一个新的docker镜像,下午研发说dev环境录入的数据差8小时,代码中使用了一个不带时区的方法插入数据库,中午才更新完新镜像,一想就是这个问题,登录pod指定date发现时间是正确的。
新的Dockerfile中,只有下面命令
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Dockerfile 时区设置修改后的dockerfile时区正确,应用录入时间正确。
& & cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \\
& & echo Asia/Shanghai > /etc/timezone \\
参考别的文章java 时区设置注意,如果能确保所在主机/etc/timezone内容正确,则不需要再对Java时区进行设置
TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");
TimeZone.setDefault(tz);
注释:/etc/localtime是用来描述本机时间,而 /etc/timezone是用来描述本机所属的时区
Linux 修改本机时区在linux中,有一些程序会自己计算时间,不会直接采用带有时区的本机时间格式,会根据UTC时间和本机所属的时区等计算出当前的时间。
比如jdk应用,时区为“Etc/UTC”,本机时间改为北京时间,通过java代码中new 出来的时间还是utc时间,所以必须得修正本机的时区。
echo Asia/Shanghai > /etc/timezone
推荐阅读
- 数据库数据恢复ASM磁盘组掉线,ASM实例不能mount的Oracle数据库数据恢复案例
- elasticSearch - 原理
- [OpenCV实战]26 基于OpenCV实现选择性搜索算法
- RK3568编译OpenHarmony 3.1 Release
- #yyds干货盘点# Spring核心之面向切面编程(AOP)
- 华为数字化转型实践
- Docker 搭建的 GitLab 无法提交代码
- #yyds干货盘点# 解决剑指offer(对称的二叉树)
- k8s集群service外部流量策略如何优雅的处理Pod终止过程中的流量丢失问题()