如何使用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格式存储日志。