阅读量:2
在Debian上可通过以下方式限制Docker资源:
-
命令行参数(
docker run)- CPU限制:
--cpus(指定核心数,如--cpus=1.5)、--cpuset-cpus(绑定指定核心,如--cpuset-cpus="0,2")。 - 内存限制:
--memory(硬限制,如--memory=512m)、--memory-swap(总内存+交换空间,建议与--memory一致)、--memory-reservation(软限制,低于硬限制时触发)。 - 磁盘I/O限制:
--blkio-weight(设置权重,10-1000)。
- CPU限制:
-
Docker Compose
在docker-compose.yml中通过deploy.resources配置:services: app: image: nginx deploy: resources: limits: cpus: '1' memory: 512M reservations: cpus: '0.5' memory: 256M -
cgroups手动配置
- 创建cgroup并设置资源:
sudo cgcreate -g cpu,memory:/my_container echo "500000" > /sys/fs/cgroup/cpu/my_container/cpu.cfs_quota_us # 限制50% CPU echo "1G" > /sys/fs/cgroup/memory/my_container/memory.limit_in_bytes # 限制1GB内存 - 将容器PID加入cgroup:
sudo cgclassify -g cpu,memory:/my_container $(docker inspect -f '{{.Pid}}' <容器ID>)
- 创建cgroup并设置资源:
-
Docker Daemon全局配置
修改/etc/docker/daemon.json,添加默认限制(需重启Docker):{ "default-ulimits": { "nofile": { "Soft": 65536, "Hard": 65536 } } }
注意:部分参数(如--memory-swap)需宿主机内核支持,可通过docker info检查功能是否启用。生产环境建议优先使用docker run或Docker Compose,避免手动操作cgroups的复杂性。
以上就是关于“Docker在Debian上的资源如何限制”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm