我在/ usr/src/app中的docker容器内运行了一个节点js应用程序.我想使用nohup(nohup node index.js&)运行此应用程序.为了一般/调试目的,查看附加到nohup.out的输出的最佳方法是什么?我是否需要一直使用docker cp复制到主机操作系统.有没有更好的方法来实现这一目标?
虽然在容器内部使用日志文件(没有卷安装)是一种已知的反模式,但您可以使用exec轻松输出这些文件,例如cat:
docker exec -it [CONTAINERID] cat /usr/src/app/nohup.out
Run Code Online (Sandbox Code Playgroud)
更好的模式是将输出存储到容器内部的单独的卷装文件夹删除状态,但也允许您直接从主机系统访问日志.
在这种特定情况下,我认为不需要单独的日志文件,甚至不需要nohup.只需为容器设置策略即可自动重启(--restart always)而不是nohup.
您确实输出了日志
/dev/stdout 对于所有普通日志
/dev/stderr如果您的应用程序在正常日志和错误日志之间可能有所不同,请使用管道传输您遇到的所有错误。
因此/var/log/nohup.log,与其像定义日志文件一样定义日志文件,不如dev/stdout
访问日志将像编写脚本一样容易,docker logs <containername>或者docker-compose logs <servicename>-如果您已经开始使用堆栈docker-compose up,那么无论如何您都将看到日志在您面前-非常方便。
在生产级,您想进一步处理日志流,请查看https://github.com/gliderlabs/logspout
而且,如果您想更进一步,请向其中添加ELK堆栈https://logz.io/learn/complete-guide-elk-stack/
| 归档时间: |
|
| 查看次数: |
8701 次 |
| 最近记录: |