docker logs不会记录已分离的exec

问题描述 投票:2回答:1

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

node.js docker
1个回答
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立即退出,那么是的,容器本身不会产生任何日志。

© www.soinside.com 2019 - 2024. All rights reserved.