一:通过docker run –ulimit 参数设置这个容器的 ulimit 值

如

1
docker run --ulimit nofile=1024:1024 --rm debian sh -c "ulimit -n"

 

官网说明:
https://docs.docker.com/engine/reference/commandline/run/#set-ulimits-in-container—ulimit

二: 修改 docker 服务的 默认设置

vim /usr/lib/systemd/system/docker.service

1
2
3
4
[Service]
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity

systemctl daemon-reload
systemctl restart docker

文档: https://blog.csdn.net/signmem/article/details/51365006

  • 注释 设置为 infinity 时,值为 65536 ,如 LimitNOFILE=infinity,ulimit -n 值为 65536

三 : daemon.json 文件中配置

vim /etc/docker/daemon.json

1
2
3
4
5
6
7
8
9
{
        "default-ulimits": {
                "nofile": {
                        "Name": "nofile",
                        "Hard": 64000,
                        "Soft": 64000
                }
        }
}

systemctl restart docker

文档 https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file

  • 注释: daemon.json 和 docker.service 两个都配置 ,daemon.json 中的配置生效。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐