如何运行多个Docker容器?

时间:2017-10-18 14:30:04

标签: node.js docker

我想运行尽可能多的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内核中运行,是吗?

2 个答案:

答案 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/

的官方文档