【问题标题】:Control processes in container by supervisor由主管控制容器中的进程
【发布时间】:2019-01-31 19:48:35
【问题描述】:

我有 php-fpm 作为主进程的容器。是否可以创建另一个以 supervizor 作为主要进程的容器来运行和控制 php 容器中的某些守护进程?例如,在 php conainer 中有一些消费者使用来自 rabbitMQ 的消息。我想通过主管控制消费者,但我不想在 php 容器中运行 supervizor。可能吗?

【问题讨论】:

    标签: docker rabbitmq supervisord


    【解决方案1】:

    问:我有一个运行 php-fpm 作为其主要进程的容器。是否可以创建另一个以supervisor为主要进程的容器来运行和控制php容器中的其他守护进程?

    答:我稍微重构了你的问题陈述,如果没有意义,请告诉我。

    简短的回答,可能。 但是您不希望在一个容器中嵌套容器,因为这被认为是 anti-pattern 而不是 micro-service 架构的愿望。

    通常您只会在容器中运行一个main process。这样当process 死亡时,容器将停止并退出。因此,不要将其他正在工作的processes 带上。

    理想的架构是为rabbitmq 提供一个容器,为php 进程提供另一个容器。在同一个docker network 上旋转它们的最简单方法是通过docker-compose 文件。

    您可能对以下属性感兴趣:links/depends_onexposeport forward 您的 rabbitMq 的端口到您的 php 容器中。

    https://docs.docker.com/compose/compose-file/#expose

    https://docs.docker.com/compose/compose-file/#depends_on

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      • 1970-01-01
      • 2016-08-31
      • 2017-07-25
      • 2020-04-10
      • 1970-01-01
      • 2020-09-11
      相关资源
      最近更新 更多