一:通过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 中的配置生效。