主管控制集装箱中的过程

时间:2019-01-31 19:48:35

标签: docker rabbitmq supervisor

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

1 个答案:

答案 0 :(得分:0)

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

A:我已经稍微重构了您的问题陈述,让我知道这是否没有道理。

可能的答案很短。 但是,您不希望在一个容器中嵌套容器,因为这被认为是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