Docker容器磁盘配额限制,限制单个容器最大磁盘占用

限制单个容器的最大磁盘占用,Docker 提供了 --storage-opt size 参数,但它不是所有环境都能直接使用。
这个参数生效的前提是:Docker 存储驱动为 overlay2,并且底层文件系统是 XFS 且挂载时启用了 pquota。
下面先带你把环境条件确认好,再给出可复现的操作步骤和验证方法。

先确认存储驱动和文件系统是否支持

执行下面两条命令,检查当前 Docker 的存储驱动和 /var/lib/docker 所在文件系统类型:

docker info | grep "Storage Driver"
df -T /var/lib/docker

如果第一条输出是 overlay2,第二条的“类型”列是 xfs,说明你已经具备使用磁盘配额的基础条件。
这里还需要确认挂载选项里包含 pquota,可以运行:

mount | grep /var/lib/docker

看到 pquota 字样即可。
如果文件系统是 ext4,--storage-opt size 不会生效,需要先调整存储驱动或改用其他方案。

用 size 参数限制容器可写层大小

启动容器时,通过 --storage-opt size 指定最大可写层容量。
例如限制为 5GB:

docker run -it --storage-opt size=5g ubuntu:22.04 /bin/bash

size 后面的单位支持 bkmg,一般建议用 g
这个配额只限制容器可写层,不限制镜像层,也不限制通过 -v 挂载的数据卷。
如果容器已经创建,这个参数无法在运行中修改,只能删除后重新创建。

使用 docker-compose 时,可以在服务的配置里这样写:

services:
  app:
    image: ubuntu:22.04
    storage_opt:
      size: 5g

环境不支持时,用数据卷配额兜底

如果你的 Docker 存储驱动不是 overlay2,或者底层文件系统不是 XFS,仍想限制磁盘占用,可以考虑把数据放到独立数据卷中,再对宿主机目录做配额限制。
例如:

docker run -d -v /data/containers/app:/data myimage

然后对宿主机上的 /data/containers/app 目录设置 XFS 项目配额:

xfs_quota -x -c 'project -s app /data/containers/app' /data
xfs_quota -x -c 'limit -p bhard=5g app' /data

这样至少能让数据卷部分受控,但容器可写层仍然可能膨胀。
因此,如果你希望从根源上限制整个容器占用的物理磁盘,最好还是优先把 Docker 存储驱动切换为 overlay2 并搭配 XFS。

验证配额是否生效及常见坑

进入容器后,用 dd 写入一个大文件,观察是否在超出限制时失败:

dd if=/dev/zero of=/tmp/test.img bs=1M count=6000

如果配额设置为 5G,写入到约 5G 时会提示 No space left on device,这是正常的预期结果。

实际操作中容易踩这几个坑:

  • 镜像层共享不影响配额:多个容器共用镜像层,size 只统计每个容器自己写入的部分。
  • 数据卷不占配额-v--mount 挂载的目录走的是宿主机文件系统,不受这个参数限制。
  • 老版本 Docker 不支持:建议使用 18.09 及以上版本,具体以官方文档为准。
  • 并非所有 overlay2 环境都自动支持:必须同时满足 XFS 文件系统和 pquota 挂载选项,两者缺一不可。

总结:先测通再上生产

给单个容器限制磁盘占用,核心判断顺序是:先确认 Docker 存储驱动是否为 overlay2,再确认文件系统是否为带 pquota 的 XFS。
满足条件后,直接用 --storage-opt size 限制容器可写层;
不满足条件,则需要通过数据卷配额或调整 Docker 存储架构来间接实现。
建议你在测试环境完整跑一遍本文的命令,确认输出结果符合预期后,再把这套配置应用到生产容器。

分享到:
上一篇
KVM虚拟机CPU超配,vCPU分配原则
下一篇
服务器大量TIME_WAIT对外出站连接
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意