Docker 容器在 Ubuntu 中的资源限制
一 核心维度与常用参数
二 快速上手示例
docker run -d --name app --cpus=1 -m 512m ubuntu:24.04 sleep 3600
docker run -d --name app --cpus=0.5 -m 1g --memory-swap=1g ubuntu:24.04 sleep 3600
docker run -d --name app \
--cpuset-cpus="0-1" \
--device-write-bps=/dev/sda:1mb \
ubuntu:24.04 sleep 3600
docker stats app
docker inspect app | grep -A5 -B5 '"HostConfig"'
三 进阶与运维实践
docker update -m 1g --cpu-shares=2048 app
{
"default-ulimits": {
"nofile": { "Name": "nofile", "Hard": 65536, "Soft": 65536 }
},
"exec-opts": ["native.cgroupdriver=systemd"]
}
sudo systemctl restart docker
pid=$(docker inspect -f '{{.State.Pid}}' <container_id>)
nsenter -t $pid -n tc qdisc add dev eth0 root tbf rate 10mbit latency 50ms burst 1540
四 常见误区与排查