运行 docker 中的 nodejs 应用程序,将标准输出重定向到文件

running nodejs app in docker with redirecting standard output to a file

我已经为 运行 一个 nodejs 应用程序创建了一个 Dockerfile,并希望将其标准输出重定向到这样一个文件: CMD [ "node", "app.js", ">", "/usr/src/kuku.out", "2>&1"] 但是文件 kuku.out 没有被创建。

您需要使用 CMD 指令的 the "shell" form,因为重定向是 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形式基本相同)

另一种方法是使用 logging plugins 之一来重定向应用程序输出。

有关使用 fluentd 驱动程序的人为示例:

  • How to run jar file using docker file in docker container