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总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Docker启动容器报错:Ports are not available的解决方案
这篇文章主要介绍了Docker启动容器报错:Ports are not available的解决方案,Docker 将容器程序的端口号映射到宿主机的端口号,是一个 NAT 过程,这个过程可能会因为与 Windows NAT 服务冲突而失效,文中有详细的解决方案,需要的朋友可以参考下2024-03-03
Docker镜像管理之docker pull实战及常见问题详解
docker pull是我们经常用到的一个命令,我们使用一些官方镜像,如MySql、Nginx等都需要用docker pull下载,这篇文章主要介绍了Docker镜像管理之docker pull实战及常见问题的相关资料,需要的朋友可以参考下2025-09-09
Docker容器/bin/bash start.sh无法找到not found问题解决
最近在学习联系中遇到一个问题,百度后发现这个需求还是挺常见的,所以下面这篇文章主要给大家介绍了关于Docker容器/bin/bash start.sh无法找到not found问题的解决方法,需要的朋友可以参考下2022-08-08


最新评论