2017-06-16 63 views
1

我已经Docker化一个示例应用程序,并配置它登录到STDOUT。然后运行容器,但未指定logging-driver。根据Docker文档,STDOUT应该从容器中收集并存储到JSON文件中...Docker JSON文件日志驱动程序写入文件的位置在哪里?

但是在logging docs中没有任何地方告诉你在哪里可以找到这个JSON文件!

任何想法如何找到我的主机上的这个文件,并检查其内容?

+0

我很困惑,从[这里](https://docs.docker.com/engine/admin/logging/json-file/):“*默认情况下,Docker捕获标准输出(和标准错误)的所有容器中,并使用JSON格式将它们写入文件。*“我如何误读它?我正在登录到STDOUT/console,期望(根据我读过的所有文档,包括上面的内容)Docker从我的容器中收集STDOUT /控制台并将其写入到我主机上的某个文件中。我想知道该文件在我的主机上。 – smeeb

+1

请参阅[查看容器的日志](https://docs.docker.com/engine/admin/logging/view_container_logs/) –

回答

2

docker inspect是你的朋友弄清楚一个容器的细节。有了这个,你可以通过运行下面的命令获取该日志路径:

$ docker inspect --format='{{.LogPath}}' NAME|ID 

例如:

$ docker inspect --format='{{.LogPath}}' 2de7566c47eb 

希望它能帮助。

+0

感谢@Qasim(+1) - 当我执行docker ps时,我看到我的容器ID是'a6bd3a849fc0',所以当我运行'docker inspect --format ='{{。LogPath}}'a6bd3a849fc0'时,我得到'/var/lib/docker/containers/some-enormous-alphanumerical-num-json.log '。 – smeeb

+1

当我去尾尾那个日志文件('tail -f/var/lib/docker/containers/some-huge-alphanumerical-num-json.log)'尾巴给我时'没有这样的文件或目录。 '当然,当我检查文件系统时,该文件不存在。那是怎么回事?!顺便说一句,我正在运行Mac的Docker ...但希望这不重要。 – smeeb

+1

@smeeb在Mac/Windows的情况下,这条路径是指docker机器节点中的路径。所以你可以在虚拟机中找到它。但在这种情况下,我更愿意使用'docker logs a6bd3a849fc0',使用它您也可以使用'docker logs -f a6bd3a849fc0'跟踪容器日志。让我知道如果它不能解决你的问题! –