docker logs不会记录已分离的exec
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker logs不会记录已分离的exec相关的知识,希望对你有一定的参考价值。
我的Dockerfile是
FROM node:4
RUN npm install -g yarn
WORKDIR /app
我运行docker run -d
并将当前工作目录挂载为卷。所有的deps都是由yarn
安装的。我有一个npm脚本来lint文件。
如果我做docker exec -it [container] npm run lint
它按预期工作,我可以看到所有日志。但是,如果我做docker exec -itd [container] npm run lint
,它会立即退出,这是预期的。但我无法通过运行docker logs [container]
来查看日志。如何重新连接exec或只查看日志?
我试过docker attach [container]
它转到nodejs的repl。这是为什么?
答案
如“Docker look at the log of an exited container”中所述,您可以使用docker logs
docker logs -t <container>
这将显示stdout / stderr(由于-t
选项,时间戳)。
对于最后50行这些日志:
docker logs -t <container id> | tail -n 50
注意:仅当npm run lint由您的容器运行时才会起作用(docker run <image> npm run lint
)
如果您的docker exec
立即退出,那么是的,容器本身不会产生任何日志。
以上是关于docker logs不会记录已分离的exec的主要内容,如果未能解决你的问题,请参考以下文章