docker ulimit 配置

docker ulimit 配置

docker 设置 ulimit 方法

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

For Example

  • 一个es memlock 的例子
1
docker run --rm -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "bootstrap.memory_lock=true" --ulimit memlock=-1:-1 docker.elastic.co/elasticsearch/elasticsearch:6.5.0

感觉文章还可以的话,帮忙点点下面的广告哦! 谢谢支持!

感谢您的支持!