Docker 容器资源限制

在 Docker 中,可以通过多种方式对容器的资源使用进行限制,包括 CPU、内存、磁盘 I/O 等。

限制 cpu 资源

运行容器时可以通过指定以下参数来限制容器的 CPU 资源:

--cpuset - cpus:设置容器可以使用的 CPU 核心。

--cpu - shares:设置容器的 CPU 调度优先级。

示例:限制容器只能在主机的第 0 和第 1 个 CPU 核心上运行,并设置容器的 CPU 调度权重为 512,Docker 默认的 CPU 股份值是 1024,因此这个容器在与其他容器竞争 CPU 时,其优先级相对较低。

复制代码
# docker run -itd --name dcoker-cpu01 --cpuset-cpus 0,1 --cpu-shares 512 busybox
限制内存资源

运行容器时可以通过指定以下参数来限制容器的内存:

--memory 限制容器可用的内存。

示例:创建容器名为 busybox1,限制容器只能在主机的第 2 和第 3 个 CPU 核心上运行,限制容器可用的内存为 128 MB。

复制代码
# docker run -itd --name busybox1 --cpuset-cpus 2,3 --memory 128m busybox

验证:

查看容器 busybox1运行在哪些 cpu核上,内存限制为多少.

复制代码
# docker inspect --format '{{.State.Pid}}' busybox1    # 获取容器的pid
24493
# cat /proc/24493/status | grep Cpu                    # 查看该pid进程的状态信息
Cpus_allowed:    c
Cpus_allowed_list:    2-3
# docker inspect busybox1 | grep -e "Memory"           # 查看容器内存(单位为字节)
            "Memory": 134217728,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 268435456,
            "MemorySwappiness": null,
# 如上容器 busybox1 如预期运行在第2、3个cpu核上, 内存资源限制为 128MiB
相关推荐
东风微鸣12 分钟前
如何发现 K8s 集群里的无用资源?
云原生·容器·kubernetes
木雷坞1 小时前
Docker Compose部署Docmost:数据库、附件持久化与首次协作
数据库·docker·容器
cg.family2 小时前
K8S:scale 与 delete pod 核心区别
运维·docker·容器
wei_shuo2 小时前
极空间部署1Panel实战:应用商店装AList、Docker管理与远程访问
运维·docker·容器
朗尊软件技术团队2 小时前
电商系统Docker容器化部署实践:从Dockerfile镜像瘦身到K8s滚动上线
运维·docker·云原生·容器·kubernetes
SensorFlow3 小时前
SensorFlow Docker 部署:从埋点接入到第一张看板
docker
壹玖玖肆4 小时前
Docker 部署 openGauss 7.0(aarch64)MySQL 兼容模式建库与数据恢复完整实践
mysql·docker·容器
kaixin_啊啊5 小时前
飞牛部署Mtab完整实战:Docker安装、MySQL建库与固定地址访问
mysql·docker·容器
程序员老赵18 小时前
Docker 部署 Wiki.js:轻松搭建私有化维基知识库
docker·容器·开源
灯澜忆梦20 小时前
【Docker】#5 | 网络配置
网络·docker·容器