docker中的多进程架构

时间:2019-03-04 18:42:24

标签: python docker multiprocessing

我做了很多研究,但不确定我是否理解正确, 在Docker上部署的“最佳实践”是每个容器只有一个进程。

有关此问题的几个

  1. 含义是最好拥有一个服务(例如,一个应用程序),但是此应用程序可以具有多进程体系结构-对还是错?

  2. 容器中对此有实际限制吗?例如,如果我“忽略”建议的最佳做法并尝试在我的应用程序中生成多个进程?会失败吗?

2 个答案:

答案 0 :(得分:1)

  1. [最佳实践...]具有单个服务(例如,单个应用程序)。是

  2. [如果我...]尝试在我的应用程序中产生多个进程?会失败吗?否

  3. 在docker上部署的公认“最佳实践”是每个容器只有一个进程。否-不必要。

想法是您的“服务”应尽可能“减少”;依赖于其他“服务”(可能在其他容器中)。在您的容器中根据需要运行尽可能少的内容-但不要少。

答案 1 :(得分:1)

Docker可以运行底层cgroup允许的尽可能多的进程,会有一个前台进程,其中stdout是docker日志。如果该过程停止,则您的容器将停止。最佳实践是对与其他服务隔离的容器执行一件事,除非您定义接口。例如,打开Web服务的端口。做一件事将使docker映像具有可移植性并具有潜在的可扩展性。