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

标签 docker docker-engine

我有一个后端服务器程序,该程序使用Docker引擎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内核上运行,我只是想避免它使用多个CPU内核。)

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

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

最佳答案

您可以设置NanoCPUs。 1000000000单位将等于1核心。

关于docker - 使用Docker Engine API设置容器的CPU核心数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52391877/

相关文章:

node.js - 在 Docker 上构建 vue/quasar 应用程序时出错

docker - 有条件的 npm install ARG 在 Dockerfile 中

Docker 通过 ssh 连接到远程守护进程 - 权限被拒绝(公钥)

docker - 为什么要为 docker swarm 集群中的节点选择工作角色?

docker - 命令 `eval $(minikube docker-env)` 与 `Using eval $(minikube -p minikube docker-env)`

python - Dockerfile指定API的路径

带有启动参数的 Docker 备份容器

docker - 错误 : Failed to download metadata for repo 'appstream' : Cannot prepare internal mirrorlist: No URLs in mirrorlist

docker - 如何设置docker-compose/bin/bash入口点?