使用Docker Engine API设置容器的CPU核心数

问题描述 投票:-1回答:1

我有一个后端服务器程序,它使用Docker Engine API(Json API)启动docker容器,我想将每个docker容器的CPU核心数限制为例如1。

Docker Engine API文档有几个配置容器CPU设置的选项,请参阅https://docs.docker.com/engine/api/v1.24

"HostConfig": {
     "CpuPercent": 80,
     "CpuShares": 512,
     "CpuPeriod": 100000,
     "CpuQuota": 50000,
     "CpusetCpus": "0,1",
     "CpusetMems": "0,1"
}

我可以使用CpusetCpus,但这非常麻烦,因为我需要保留一个列表,列出哪些docker容器分配给哪些CPU核心。 (我不关心我的容器运行的CPU核心,我只想避免它使用超过1个CPU核心。)

我还可以设置CpuQuota,以便每个docker容器仅使用例如所有CPU核心的12.5%,对应于具有8个CPU核心的服务器上的1个CPU核心。这种方法的问题在于,如果我在具有不同CPU核心数的不同服务器上运行我的后端程序,则12.5%的CpuQuota设置不再对应于1个CPU核心。

上述两种选择都很麻烦,远非理想。必须有更好/更简单的方法来设置每个容器的CPU核心数量?!

docker docker-engine
1个回答
1
投票

你可以设置NanoCPUs。 10亿单位等于1核心。

© www.soinside.com 2019 - 2024. All rights reserved.