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 再记录的日志的时间就和服务器同步了。
相关文章
在 Linux 中托管 Docker Internal
发布时间:2023/04/18 浏览次数:139 分类:Docker
-
Docker 允许开发人员通过将应用程序包装在称为容器的标准化单元中来高效地构建、测试和部署应用程序。 在使用 Docker 容器时,您可能会遇到需要将容器与主机连接的场景。
在 Docker 中设置工作目录
发布时间:2023/04/18 浏览次数:82 分类:Docker
-
在 Docker 中,我们可以通过编辑 Dockerfile 并添加密钥 WORKDIR 来设置我们的工作目录。本文将讨论在 Docker 中更改我们当前和默认的工作目录。
在 Docker 容器中公开多个端口
发布时间:2023/04/18 浏览次数:143 分类:Docker
-
Docker 容器使用端口来实现万维网上不同设备之间的通信。 在本篇文章中,我们将学习如何使用 Nginx 应用程序在 Docker 容器中公开多个端口。
将用户添加到 Docker 容器
发布时间:2023/04/18 浏览次数:187 分类:Docker
-
在本文中,我们将学习如何通过实现返回产品数组的 Express 应用程序将用户添加到 Docker 容器。
使用 Docker 网络主机命令
发布时间:2023/04/18 浏览次数:112 分类:Docker
-
在本文中,我们将学习如何使用 --network 命令将容器添加到主机网络。 如果我们不使用此命令指定网络,我们还将了解如何将容器添加到默认网络。
清除 Docker 容器日志
发布时间:2023/04/18 浏览次数:181 分类:Docker
-
本文介绍了我们可以用来清除 docker 容器中日志的不同方法。日志是应用程序在特定事件或状态发生时记录的信息,它们帮助我们监控应用程序并采取必要的措施。
Dockerfile 中 COPY 和 ADD 命令的区别
发布时间:2023/04/18 浏览次数:158 分类:Docker
-
在 Dockerfile 中,我们可以使用 COPY 或 ADD 命令复制这些文件。 这些命令在功能上是相同的; 但是,存在一些差异。本文介绍了 Dockerfile 中 COPY 和 ADD 命令之间的区别。