常见情况
常见问题:如果采用容器监控报警,会发现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构建出来的基础镜像,启动的容器会直接修改容器内的时区。
版权归原作者 听说唐僧不吃肉 所有, 如有侵权,请联系我们删除。