在Debian系統中,您可以使用Docker的cgroups
功能來限制容器的資源使用。以下是一些常用的方法:
docker run
命令的參數您可以在啟動容器時直接使用 docker run
命令的參數來限制資源。
限制CPU核心數:使用 --cpus
參數。
docker run --cpus=1 myimage
限制CPU使用率:使用 --cpuset-cpus
和 --cpu-shares
參數。
docker run --cpuset-cpus=0,1 --cpu-shares=512 myimage
限制內存大小:使用 --memory
參數。
docker run --memory="512m" myimage
設置軟限制和硬限制:使用 --memory-swap
參數。
docker run --memory="512m" --memory-swap="1g" myimage
如果您使用 Docker Compose,可以在 docker-compose.yml
文件中定義資源限制。
version: '3'
services:
myservice:
image: myimage
deploy:
resources:
reservations:
cpus: '0.5'
memory: 256M
limits:
cpus: '1'
memory: 512M
如果您需要更細粒度的控制,可以直接操作 cgroups。
找到容器的PID:
docker inspect --format '{{ .State.Pid }}' <container_id>
進入容器的 cgroups 目錄:
cd /sys/fs/cgroup/cpu/docker/<container_pid>/docker/<container_id>
設置CPU限制:
echo 100000 > cpu.cfs_quota_us
echo 100000 > cpu.cfs_period_us
設置內存限制:
echo 536870912 > memory.limit_in_bytes
還有一些第三方工具可以幫助您更方便地管理Docker容器的資源使用,例如:
通過以上方法,您可以在Debian系統中有效地限制Docker容器的資源使用。