青青园中葵,朝露待日晞。 阳春布德泽,万物生光辉。 常恐秋节至,焜黄华叶衰。 百川东到海,何时复西归? 少壮不努力,老大徒伤悲!

docker 设置default-ulimits参数解决资源限制问题

编辑docker配置文件

vi /etc/docker/daemon.json
# 配置如下:
{
  "default-ulimits": {
      "nofile": {
          "name": "nofile",
          "hard": 65535,
          "soft": 65535
      },
      "nproc": {
          "name": "nproc",
          "hard": 4096,
          "soft": 4096
      },
      "core": {
          "name": "core",
          "hard": 0,
          "soft": 0
      },
      "locks": {
          "name": "locks",
          "hard": 1024,
          "soft": 512
      }
  }
}

参数说明

nofile:控制单个容器最大文件描述符数量(默认值常为1024:1024)
nproc:限制容器内用户级进程总数(防止fork炸弹攻击)
core:配置核心转储文件大小(影响故障诊断能力)
locks:约束文件锁持有数量(避免存储子系统死锁)

重启docker

sudo systemctl daemon-reload
sudo systemctl restart docker

通过docker run -ulimit参数设置

docker run --ulimit nofile=1024:1024

配置优先级

/etc/security/limits.conf :宿主机的全局配置
daemon.json:Docker的default-ulimits设置
镜像Dockerfile中定义的RUN ulimit ...命令
优先级:RUN ulimit> daemon.json中的default-ulimits> 宿主机的全局配置limits.conf
posted @ 2025-12-19 11:19  yhzou  阅读(2)  评论(0)    收藏  举报