我的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。那是为什么?
答案 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
立即退出,那么是,容器本身不会生成任何日志。