Docker 部署Nginx 访问日志时间不正确的解决方式
在运营网站的过程中,始终没有太把日志当回事。虽然开启了日志记录,不过没有仔细的分析过日志。今天心血来潮看日志时发现记录的时间要比服务器的时间少8个小时。 8个小时,这是一个比较特殊的数字。我们知道 UTC 时区是标准的世界通用时区,而UTC+8 是比世界通用时间快8个小时的时区,而我们正好是在这个时区的。 我的网站是使用Docker+Nginx部署的,因此这里推断Docker使用的时区可能是UTC。而我们的服务器所在的时区是比其快8小时的。 为了验证我们的猜想,使用如下命令进入docker 容器进行查看
$ docker exec -it nginx bash
进入容器之后,执行date
命令,显示如下结果:
很明显,docker容器的时区是UTC。知道了问题的所在,接下来就是校正docker容器的时区。网上目前基本上就三种方式:
共享主机的localtime
复制主机的localtime
创建自定义的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