迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

Docker 部署Nginx 访问日志时间不正确的解决方式

作者:迹忆客 最近更新:2021/11/09 浏览次数:

在运营网站的过程中,始终没有太把日志当回事。虽然开启了日志记录,不过没有仔细的分析过日志。今天心血来潮看日志时发现记录的时间要比服务器的时间少8个小时。 8个小时,这是一个比较特殊的数字。我们知道 UTC 时区是标准的世界通用时区,而UTC+8 是比世界通用时间快8个小时的时区,而我们正好是在这个时区的。 我的网站是使用Docker+Nginx部署的,因此这里推断Docker使用的时区可能是UTC。而我们的服务器所在的时区是比其快8小时的。 为了验证我们的猜想,使用如下命令进入docker 容器进行查看

$ docker exec -it nginx bash

进入容器之后,执行date命令,显示如下结果:

docker 容器时区

很明显,docker容器的时区是UTC。知道了问题的所在,接下来就是校正docker容器的时区。网上目前基本上就三种方式:

  1. 共享主机的localtime
  2. 复制主机的localtime
  3. 创建自定义的dockerfile

我这里使用的是第一种方式,共享主机的localtime。我是使用的docker-compse。所以直接在配置文件中新增一行文件映射即可

version: '3'

services:
  web:
    ...
    volumes:
      ...
      - /etc/localtime:/etc/localtime
      ...
    ...

然后重新构建web镜像,并启动容器

$ docker-compose up web

这之后就nginx再记录的日志的时间就和服务器同步了。

除非注明转载,本站文章均为原创或翻译,欢迎转载,转载请以链接形式注明出处

本文地址:

迹忆客

专注技术分享,项目实战分享!

技术宅 乐于分享 7年编程经验
社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

热门文章

教程更新

热门标签