更改 docker run 命令中的 ulimit 值

sha*_*nuo 4 docker docker-compose

我尝试安装这个图像...

# docker run -d -p 5601:5601 -p 5000:5000  -p 9200:9200 --ulimit 65536  kenwdelong/elk-docker:latest
Run Code Online (Sandbox Code Playgroud)

并得到这个错误:

invalid argument "65536" for --ulimit: invalid ulimit argument: 65536
See 'docker run --help'.
Run Code Online (Sandbox Code Playgroud)

如果删除 ulimit 选项,则会在容器日志中收到以下错误。

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
Run Code Online (Sandbox Code Playgroud)

根据谷歌,docker-compose.yml 文件可以有像这样的 ulimit 子句......

version: '2'
services:
  elastic:
      image: elasticsearch
      environment:
          - ES_JAVA_OPTS=-Xmx2g -Xms2g
      ulimits:
          nofile:
              soft: 65536
              hard: 65536
Run Code Online (Sandbox Code Playgroud)

我不想使用 docker-compose,但需要在运行命令中使用该功能。

Rob*_*ert 6

使用表格:docker run --ulimit <type>=<soft>:<hard>

所以,对于你的 nofile,一个例子是--ulimit nofile=65536:65536

文件:

https://docs.docker.com/engine/reference/commandline/run/#set-ulimits-in-container-ulimit