0


Docker篇之修改容器内的时区

常见情况

常见问题:如果采用容器监控报警,会发现zabbix docker发送的邮件和微信告警,发送邮件的时间与告警触发时间不一致
进入宿主机查看容器 docker ps

docker exec -it “容器名“ bash

查询时间 date -R 发现时区为0时区

date -R

方式一:修改容器内的时区

1、复制相应的文件,替换系统内的时区文件

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

注意:有的容器基础镜像是有这个文件的,直接拷贝就可以,如果不能拷贝,则是因为创建镜像时依赖的基础镜像,
如果运行的容器没有这两个文件,使用下面的办法
2、创建文件夹

mkdir -p /usr/share/zoneinfo/Asia

3、回到宿主机,复制宿主机里的文件到容器中

docker cp /usr/share/zoneinfo/Asia/Shanghai 容器ID或容器名:/usr/share/zoneinfo/Asia

4、进入容器

docker exec -it 容器Id或容器名 bash
// 执行命令 
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

5、验证date

date
// Tue Sep 17 13:54:25 CST 2019

方式二:通过Dockerfile直接修改基础镜像时区

Dockerfile中添加如下内容修改时区

# 设置字符集和时区
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US.UTF-8
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

通过该Dockerfile构建出来的基础镜像,启动的容器会直接修改容器内的时区。

标签: docker 容器

本文转载自: https://blog.csdn.net/xu710263124/article/details/142383172
版权归原作者 听说唐僧不吃肉 所有, 如有侵权,请联系我们删除。

“Docker篇之修改容器内的时区”的评论:

还没有评论