容器基本上是一个过程。在大小合适的Linux系统上运行500个进程没有技术问题,尽管它们将必须共享CPU和内存。
容器在整个过程中的成本是一些额外的内核资源来管理名称空间,文件系统和控制组,以及Docker守护程序内部的一些管理结构,尤其是用于处理
stdout和
stderr。
引入名称空间是为了提供隔离,这样一个容器就不会与其他任何容器发生干扰。如果5个容器的组构成一个不需要这种隔离的单元,则可以使用共享网络名称空间
--net=container。目前没有共享cgroup
AFAIK的功能。
您的建议出了什么问题:
- 它不是“ Docker方式”。这对您可能并不重要。
- 与使用为任务设计的协调器相反,您必须维护脚本才能使其正常工作,担心进程重新启动等。
- 您将必须管理文件系统中的冲突,例如,两个进程需要不同版本的库,或者它们都写入同一输出文件
stdout
并将stderr
在五个过程中混合在一起



