我有一个Node.js应用程序运行在Docker容器中的/usr/src/app目录下。
我想使用nohup来运行这个应用程序(nohup node index.js &)。
为了一般/调试目的,查看追加到nohup.out的输出最好的方法是什么?
我需要一直使用docker cp复制到主机操作系统吗?有更好的方法来实现这个吗?
谢谢。
我有一个Node.js应用程序运行在Docker容器中的/usr/src/app目录下。
我想使用nohup来运行这个应用程序(nohup node index.js &)。
为了一般/调试目的,查看追加到nohup.out的输出最好的方法是什么?
我需要一直使用docker cp复制到主机操作系统吗?有更好的方法来实现这个吗?
谢谢。
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
始终使用CONTAINER(任务ID),而不是服务名称。我们可以使用任何*nix命令作为COMMAND。ls将显示容器工作目录中的文件列表。 - chanduthedev你需要将日志输出到
/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/