docker logs不记录分离的exec

时间:2017-02-03 05:23:55

标签: node.js docker

我的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。那是为什么?

1 个答案:

答案 0 :(得分:3)

如“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立即退出,那么是,容器本身不会生成任何日志。