Ubuntu Docker 容器资源限制实操指南
一 前置检查
二 内存限制
docker run -it -m 512m ubuntudocker run -it -m 300M --memory-swap -1 ubuntudocker run -it -m 300M --memory-swap 1G ubuntudocker run -it -m 500M --memory-reservation 200M ubuntucat /sys/fs/cgroup/memory/docker/<容器ID>/memory.limit_in_bytes(硬限制)、memory.soft_limit_in_bytes(软限制)。三 CPU 限制
docker run -it --cpus=0.5 ubuntudocker run -it --cpu-period=50000 --cpu-quota=25000 ubuntudocker run -it --cpuset-cpus="0,3" ubuntudocker statscat /sys/fs/cgroup/cpu/docker/<容器ID>/cpu.shares、cpu.cfs_quota_us、cpu.cfs_period_us。四 块 I/O 限制
docker run -it --blkio-weight 300 ubuntudocker run -it --device-read-bps /dev/sda:1mb ubuntudocker run -it --device-write-bps /dev/sda:10mb ubuntudocker run -it --device-read-iops /dev/sda:1000 ubuntu五 运行与编排实践
docker update -m 1G --cpu-shares=2048 <容器名或ID>;并非所有参数都支持热更新,内存与 CPU 份额通常可用。version: "3.8"
services:
app:
image: ubuntu:22.04
command: sleep infinity
deploy:
resources:
limits:
cpus: "1.0"
memory: 512M
reservations:
cpus: "0.5"
memory: 256M
docker exec -it <容器ID> sh -c "tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms"
tc qdisc del dev eth0 root。