debian

Debian上Docker容器的资源限制

小樊
64
2025-10-02 05:14:23
栏目: 智能运维

CPU资源限制
在Debian系统上,可以通过多种方式为Docker容器设置CPU资源限制,核心方法包括:

内存资源限制
内存限制需区分硬限制(最大可使用量)与软限制(预留量),常用参数包括:

磁盘I/O资源限制
通过blkio子系统限制容器的磁盘读写速率与操作次数:

网络带宽资源限制
目前Docker原生不支持直接限制网络带宽,但可通过第三方工具(如tc命令)或网络插件(如Calico、Cilium)实现。例如,使用tc限制容器出口带宽:

# 获取容器网络命名空间PID
CONTAINER_PID=$(docker inspect -f '{{.State.Pid}}' <container_id>)
# 进入容器网络命名空间
nsenter -t $CONTAINER_PID -n
# 添加带宽限制规则(出方向,1Mbps)
tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms

Ulimit限制
通过--ulimit参数设置容器的用户资源限制(如文件描述符数量),适用于需要控制单个进程资源消耗的场景:

Daemon全局配置
通过修改Docker Daemon的/etc/docker/daemon.json文件,可设置全局资源限制(如默认ulimit、日志驱动等),适用于所有容器:

{
  "exec-opts": ["native.cgroupdriver=systemd"],  // 使用systemd作为cgroup驱动
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",  // 日志文件最大100MB
    "max-file": "3"      // 最多保留3个日志文件
  }
}

修改后重启Docker生效:sudo systemctl restart docker

0
看了该问题的人还看了