在 CentOS 上使用 Docker 限制容器资源,通常通过 docker run 参数 或 docker-compose 来实现。下面按常见资源类型说明。
docker run -d --cpus=1.5 nginx
docker run -d --cpuset-cpus="0,1" nginx
docker run -d --cpu-shares=512 nginx
docker run -d -m 512m nginx
docker run -d -m 512m --memory-swap=1g nginx
docker run -d -m 512m --memory-swap=512m nginx
docker run -d \
--device-read-bps /dev/sda:10mb \
--device-write-bps /dev/sda:10mb \
nginx
限制:
version: "3"
services:
nginx:
image: nginx
deploy:
resources:
limits:
cpus: "1.0"
memory: 512M
⚠️ 注意:
deploy.resources 只在 Docker Swarm 生效services:
nginx:
image: nginx
mem_limit: 512m
cpus: "1.0"
stat -fc %T /sys/fs/cgroup
tmpfs → cgroup v1cgroup2fs → cgroup v2(部分限制不完全一样)docker stats
如果你有 具体场景(如:只限制某服务、限制 Java 容器、K8s 环境),可以告诉我,我给你更精确配置。