k8s学习(二十五) K8s 解决容器内时区不一致的问题

使用K8s启动容器,有可能出现系统时区不一致的问题,因为默认 系统时间为 UTC 世界时间 (Universal Time Coordinated),一般本地所属时区为 CST(+8 时区,上海时间),时间上刚好相差 8 个小时。这就导致了,我们服务启动后,获取系统时间来进行相关操作,例如存入数据库、时间换算、日志记录等,都会出现时间不一致的问题,所以很有必要解决掉容器内时区不统一的问题。

在打镜像时,可以通过指定系统时区来解决这个问题
Dockerfile:

FROM java:8-alpine
ADD biz-0.0.1-SNAPSHOT.jar app.jar

ENV k8s-config-path /root/.kube
ENV harbor-secret harborsecret
ENV harbor-username admin
ENV harbor-password Harbor12345
ENV harbor-url http://172.16.10.190:80/api

EXPOSE 8300

RUN rm -f /etc/localtime \
&& ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone
ENTRYPOINT ["java","-jar", "/app.jar"]

其中通过添加以下命令,使得时区指定为/Asia/Shanghai

RUN rm -f /etc/localtime \
&& ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone

上面这种办法有时不生效,可能因为容器内没有/usr/share/zoneinfo/Asia/Shanghai这个文件吧
可以将宿主机的文件挂载到容器内部
使用如下方式挂载:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值