编辑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