当我使用ncolomer/couchbase镜像在GCE上的Docker容器中运行Couchbase服务器时,出现此错误:

The maximum number of open files for the couchbase user is set too low.
It must be at least 10240. Normally this can be increased by adding
the following lines to /etc/security/limits.conf:

couchbase              soft    nofile                  <value>
couchbase              hard    nofile                  <value>

Where <value> is greater than 10240.

建议ncolomer/couchbase中的文档更新/etc/init/docker.conf并添加limit nofile 262144,但是我不确定在GCE下使用Docker时该功能是否可用。

我看到一些选择:
  • 在Dockerfile中,运行一个脚本,以根据couchbase错误的建议修改/etc/security/limits.conf
  • 在Dockerfile中调用ulimit -n 64000

  • 有什么建议么?

    最佳答案

    ulimit的问题在于,这些限制受docker主机进程的限制所限制。
    这与已知的#4717(在较小程度上为#1916)Docker问题有关。

    据我了解,您提到的两个选项不起作用,因为这只会在子进程(即容器)上设置ulimit。从那里,我别无选择,只能在主机上设置正确的ulimit,然后再尝试在容器上增加它。

    记录的过程应该可以正常工作,直到您可以应用它为止。
    我对GCE平台不太了解,但是如果您对实例具有root访问权限,则应该将更改应用于/etc/init/docker.conf文件,重新启动Docker服务并启动Couchbase容器。

    10-07 19:12
    查看更多