首页 > 解决方案 > 如何限制一个docker容器可以看到多少cpu

问题描述

我想知道是否可以限制 docker 容器可以看到的 CPU / 核心数量?例如,如果我通过以下方式启动容器:

docker run --rm -it  --cpus=2 ubuntu:20.04

即使我将容器限制为 2,它仍然能够看到我机器上的所有内核(下面的 htop 图像以进行说明)

在此处输入图像描述

这会导致分析工作出现问题,其中 OpenBLAS 等库以及几个 Python / R 包(默认情况下)配置为使用机器上的所有内核(在本例中为 6),从而导致进程受到不必要的限制。因此,是否可以配置容器启动,使容器只能看到它可以访问的核心?

标签: docker

解决方案


我认为你不能轻易地从你的 docker 容器中隐藏 CPU,这不是一个虚拟机。

IMO,您最好的选择是深入了解您的库配置以限制其使用的核心数量,或者使用完整的虚拟机。


推荐阅读