如何使用docker日志

时间:2015-02-18 12:26:03

标签: docker

问题可能是一些新手。 我运行docker exec -it mycontainer bash进入守护进程容器(postgresSQL), 和echo一些东西。 现在我退出它,并使用docker logs mycontainer以便看到我的回声。

根据

  

docker logs命令批量检索执行时存在的日志。   docker logs --follow命令将继续从容器的STDOUT和STDERR流式传输新输出。

容器的docker logs监听STDOUT,为什么我看不到我的字符串在其中回显

2 个答案:

答案 0 :(得分:1)

假设仅对容器中的主进程进行日志记录。当exec创建一个新进程时,它不会被记录。

请注意docker logs适用于运行命令中给出的进程,例如:

$ ID=$(docker run -d debian sh -c "while true; do echo "hello"; sleep 1; done;")
$ docker logs $ID
hello
hello
hello
hello
hello

答案 1 :(得分:1)

Docker引擎只存储ID为0的进程的stdout(即由Dockerfile的CMD指令启动的进程)。

顺便说一句,在您的Docker主机上,您可以通过查看文件/var/lib/docker/containers/<ID of your container>/<ID of your container>-json.log来检查容器日志的内容。

此文件以JSON格式存储日志。