我想运行尽可能多的Docker容器,因为我有很多CPU内核。所以,我用命令:
docker run --cpus="16" --link=mongo_dev:mongodb -d -p 8001:8000 --name app myapp
另外,我试过了:
docker run --cpuset-cpus="0-15" --link=mongo_dev:mongodb -d -p 8001:8000 --name app myapp
但它只运行一个容器。或者我误解了这个命令的使用? 在一台机器上运行多个Docker容器是真的吗?据我所知,我不能使用node.js cluster模块在一个Docker容器中创建我的应用程序的多个实例,因为它只在1个CPU内核中运行,是吗?
答案 0 :(得分:1)
是。您可以在一台服务器上运行多个容器,但不限于CPU数量。
您的命令创建并启动一个最多可访问16个CPU的容器(在第二个示例中仅精确地为CPU 0-15)。
您要做的是为N个容器执行N次命令。如果您希望将容器限制为仅使用一个CPU,则每个使用--cpus = 1。如果您还希望将容器限制为永不共享CPU,请使用--cpuset-cpus = I,其中I是每个容器的0-15整数。但实际上,内核在调度方面相当不错,除非你正在进行额外的调优,否则我会让它做它的工作。
答案 1 :(得分:0)
如果您使用docker-compose,则可以使用<select id="field_cliente" name="cliente"
[(ngModel)]="oportunidad.cliente">
<option [ngValue]="null"></option>
<option [ngValue]="clienteOption" *ngFor="let clienteOption of clientes; trackBy: trackClienteById">{{clienteOption.razonSocial}}</option>
</select>
参数来运行同一图像的多个实例。
这已在docker-compose creating multiple instances for the same image
中得到解答查看docker-compose https://docs.docker.com/compose/reference/scale/
的官方文档