解析Docker中的服务器日志?

时间:2018-04-24 22:56:20

标签: docker parse-server

所以我需要将我的解析服务器停靠在一个项目中,这对Docker来说有点新鲜。

我习惯使用Heroku,我可以使用heroku日志或连接papertrial来查看解析日志以帮助调试,但我不知道如何在Docker容器中运行时查看我的解析特定日志。

我能够测试curl并获取数据,所以我知道它的工作但不知道如何查找日志数据。

搜索周围真的不会导致任何更具体的Docker结果。我也试图找出如何写入logs文件夹,但文件夹总是空的..?

1 个答案:

答案 0 :(得分:2)

Docker从容器的stdoutstderr收集每个容器的日志。如12-factor application中所述,应用程序应将其日志发送到stdout(由heroku标准化):

  

十二因素应用程序从不关心其输出流的路由或存储。它不应该尝试写入或管理日志文件。相反,每个正在运行的进程将其未缓冲的事件流写入stdout。在本地开发期间,开发人员将在其终端的前台查看此流以观察应用程序的行为。

话虽如此,您流式传输到容器stdout的所有内容都将存储在/var/lib/docker/containers/<container id>/<container id>-json.log目录中。您可以使用docker ps命令查看容器ID。您不必总是看到该文件。您可以docker logs <container-id>查看存储在容器目录中的日志。

如果必须在文件系统中包含日志,则可以将日志存储在容器中,并将该目录挂载到主机上以查看日志文件。你可以这样做:

docker run -v <host directory>:<log directory in container> ...

希望它有所帮助。