同一个 Docker 容器上的两个 Logstash 实例

Two Logstash instances on same Docker container

我想知道是否有办法将两个具有不同配置的 logstash 进程 运行 放在一个 Docker 容器上。 我的设置有一个 Logstash 进程,使用文件作为输入,将事件发送到 Redis,然后从那里发送到第二个 Logstash 进程,然后再发送到自定义 http 进程。所以,Logstash --> Redis --> Logstash --> Http。希望将两个 Logstash 实例和 Redis 保持在同一个 Docker 容器中。我还是 Docker 的新手 & 非常感谢您对此的任何意见/反馈。

这会比需要的更复杂。在 Docker 世界中,运行 三个容器做三件事比 运行 一个容器做所有事情要简单得多。虽然有可能-

您需要 运行 容器中的 init 进程来控制多个进程,并将其作为容器的入口点启动。 init 必须知道如何启动您感兴趣的进程,包括 logstash 和 redis。 Basimage/phusion 提供了一个具有良好初始化系统的映像,但启动脚本是基于 运行 它的,可能很难掌握。

如果您只想 运行 一个进程,您可以使用 docker-compose 文件来启动所有三个进程并将它们一起 link。