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

在运营网站的过程中,始终没有太把日志当回事。虽然开启了日志记录,不过没有仔细的分析过日志。今天心血来潮看日志时发现记录的时间要比服务器的时间少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再记录的日志的时间就和服务器同步了。

本文转载自:迹忆客(https://www.jiyik.com)

以上是 Docker 部署Nginx 访问日志时间不正确的解决方式 的全部内容, 来源链接: utcz.com/z/290237.html

回到顶部