BMi*_*tch 92
正如Charles所提到的,默认情况下都可以使用,或者您可以使用--cpuset-cpus参数限制每个容器.
docker run --cpuset-cpus="0-2" myapp:latest
Run Code Online (Sandbox Code Playgroud)
这会将容器限制为3个CPU(0,1和2).有关更多详细信息,请参阅docker run docs.
限制CPU使用容量的首选方法是对CPU进行小数限制:
docker run --cpus 2.5 myapp:latest
Run Code Online (Sandbox Code Playgroud)
这会将容器限制在主机上的2.5核心.
最后,如果您在VM内运行docker,包括Docker for Mac,Docker for Windows和docker-machine,那些VM将具有与笔记本电脑本身分开的CPU限制.Docker在该VM内部运行,并将使用提供给VM本身的所有资源.例如,使用Docker for Mac,您可以使用以下菜单:
默认情况下,您的主机VM可能只有一个核心。因此,您应该首先增加VM cpu计数,然后使用--cpuset-cpus选项增加docker核心。您可以使用以下命令删除docker default VM,然后创建另一个具有可选cpu计数和内存大小的VM :
docker-machine rm default
docker-machine create -d virtualbox --virtualbox-cpu-count=8 --virtualbox-memory=4096 --virtualbox-disk-size=50000 default
Run Code Online (Sandbox Code Playgroud)
完成此步骤后,您可以在运行映像之前指定核心数。该命令将使用8个内核中的4个内核。
docker run -it --cpuset-cpus="0-3" your_image_name
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用以下命令检查映像中可用内核的数量:
nproc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49932 次 |
| 最近记录: |