原文来源: how-to-redirect-docker-logs-to-a-single-file
问题: 我想把某一个docker的log全部导出到一个文件里进行分析,我该怎么做?
其实不用那样操作,Docker默认把所有的日志存在一个log文件里面。你可以通过以下命令查看docker对应log的地址:
docker inspect --format='{{.LogPath}}' containername
显示日志的地址:
/var/lib/docker/containers/f844a7b45ca5a9589ffaa1a5bd8dea0f4e79f0e2ff639c1d010d96afb4b53334/f844a7b45ca5a9589ffaa1a5bd8dea0f4e79f0e2ff639c1d010d96afb4b53334-json.log
vim 打开日志,进行分析检查。
如果重定向日志,你只能获得重定向之前的日志,不能够获得时时的日志信息。
注:
如果想要在命令行下看到时时的日志,使用以下命令:
tail -f `docker inspect --format='{{.LogPath}}' containername`
注:
只有在产生了日志后,/var/lib/docker/containers/f844a7b45ca5a9589ffaa1a5bd8dea0f4e79f0e2ff639c1d010d96afb4b53334/f844a7b45ca5a9589ffaa1a5bd8dea0f4e79f0e2ff639c1d010d96afb4b53334-json.log这个日志文件才会存在,如果没有日志则日志文件不会存在。这个和我们在命令行运行命令: docker logs containername 中显示为空一样。