在Docker中运行nodejs应用程序,将标准输出redirect到文件

我已经创build了一个Dockerfile来运行nodejs应用程序,并且希望将其标准输出redirect到如下所示的文件: CMD [ "node", "app.js", ">", "/usr/src/kuku.out", "2>&1"] usr/src/kuku.out CMD [ "node", "app.js", ">", "/usr/src/kuku.out", "2>&1"]但文件kuku.out没有被创build。

您需要使用CMD指令的“shell”forms ,因为redirect是shell结构:

 CMD node app.js > /usr/src/kuku.out 2>&1 

或者自己明确地启动一个shell:

 CMD [ "sh", "-c", "node app.js > /usr/src/kuku.out 2>&1" ] 

(这与shell的forms基本相同)

另一种方法是使用其中一个日志插件redirect应用程序输出。

对于一个使用fluentd驱动的人为的例子:

  • 如何在Docker容器中使用docker文件运行jar文件