如何使用docker日志

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

根据

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

docker logs听容器的STDOUT ,为什么我没有看到我的string只是在里面回声

假定日志只发生在一个容器中的主进程。 由于exec创build一个新的进程,它不会被logging。

请注意, 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 

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

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

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