所以我需要将我的解析服务器停靠在一个项目中,这对Docker来说有点新鲜。
我习惯使用Heroku,我可以使用heroku日志或连接papertrial来查看解析日志以帮助调试,但我不知道如何在Docker容器中运行时查看我的解析特定日志。
我能够测试curl并获取数据,所以我知道它的工作但不知道如何查找日志数据。
搜索周围真的不会导致任何更具体的Docker结果。我也试图找出如何写入logs文件夹,但文件夹总是空的..?
答案 0 :(得分:2)
Docker从容器的stdout
和stderr
收集每个容器的日志。如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> ...
希望它有所帮助。