使用docker登录到supervisord中的stdout

时间:2015-05-05 23:44:57

标签: logging docker supervisord

我有一些需要运行supervisord的docker容器。

但是,我还没有设法让主管捕获日志并将它们输出到stdout。似乎主管没有捕获他们的输出并以与Docker一起运行良好的方式吐出它。我喜欢它以流程名称或其他东西为前缀。

我该怎么办?从主管手册中不清楚。

我还会考虑除主管之外的其他工具。它的一个缺点是它是用python编写的,它真正使Docker容器膨胀。如果您有解决方案,那么您的解决方案是否有更优化的工具可以更好地使用docker?

1 个答案:

答案 0 :(得分:3)

我找到了一个使用runit的解决方案。

runit设置起来稍微复杂一点,但不是那么明显,而且日志记录开箱即用。

基本上你只需用apt-get install runit安装runit。 然后创建一个运行文件复制到/ etc / service / {servicename} / run 运行文件只是一个bash脚本,它执行服务的名称。 它的标准输出会被自动捕获。

我遇到的麻烦是将nginx登录到stdout和stderr。 我按照一个将内容写入nginx.conf的配方。它没用。有用的只是:

ln -sf /dev/stdout /var/log/nginx/access.log
ln -sf /dev/stderr /var/log/nginx/error.log