问题: 我在托管服务器上有几个Docker映像。我从一堆詹金斯工作开始了多个容器。由于主机功能有限,我想限制每个映像的最大容器数。设置詹金斯执行程序的数量限制并不能真正解决问题,因为某些作业可以启动16个容器。尽管可以将它们拆分为并行执行的多个线程,但这仍然不是理想的选择。我想为所有工作提供一种解决方案
问题#1(主要): 是否可以将在一台机器上运行的Docker的容器的最大限制设置为10,然后将其余容器排队?
问题2: 如果没有这种功能,或者在这种情况下有更好的选择,那么该方法的工作原理是什么?
答案 0 :(得分:2)
一种方法是使用上面提到的 kubetnetes。但这是非常耗时的路线
一种更简单的方法是设置一个主作业来启动您的容器。您的管道将调用此作业,例如 16 次启动 16 个容器。然后将 jenkins 主机上的最大执行程序设置为例如 6。当您开始工作时,它将是 1 个执行程序加上队列中的 16 个,总共 17 个。它将首先启动 6 个,然后等到那时将停止。一旦任何一个正在运行的容器完成,它将允许下一个容器运行
答案 1 :(得分:0)