我在 docker 容器中运行 Apache2,并且不想将任何内容写入磁盘,将日志写入 stdout 和 stderr。我已经看到了几种不同的方法来做到这一点(Supervisord 和 stdout/stderr, Apache 访问日志到 stdout),但这些看起来像是黑客。默认情况下没有办法做到这一点吗?
需要明确的是,我不想跟踪日志,因为这会导致将内容写入容器中的磁盘。
我在 docker 容器中运行 Apache2,并且不想将任何内容写入磁盘,将日志写入 stdout 和 stderr。我已经看到了几种不同的方法来做到这一点(Supervisord 和 stdout/stderr, Apache 访问日志到 stdout),但这些看起来像是黑客。默认情况下没有办法做到这一点吗?
需要明确的是,我不想跟踪日志,因为这会导致将内容写入容器中的磁盘。
适用于我的 ubuntu 和 centos
安装 apache2 包后如何将其放入 Dockerfile 中?
假设这是日志的路径。它适用于 Ubuntu 14.04,也适用于 Ubuntu 16.04。
注意:如果您确定符号链接
/dev/stdout
或/proc/stderr
存在,那么您也可以使用它们。我更喜欢真实文件的路径,因为这是保证存在的。不是特别要求的答案,但根据您的情况,可能更好的方法是根本不登录到 stdout/stderr。只需将日志以 JSON 格式传输到 cat 即可。这将消除区分流的需要,因为 json 可以包含区分它们所需的数据。例如,类似于以下内容。然后可以更容易地将其摄取到graylog之类的东西中
还有一个 gelf 日志记录模块,因此如果您愿意,您也可以直接从 apache 流式传输到 graylog 类型的服务器