7

我正在尝试为 Couchbase 创建一个 docker 映像,但 CentOS 映像上的 dockerfile 出现以下错误。

# expose default port
EXPOSE 8091

ENV PATH $PATH:/opt/couchbase/bin

RUN cd /var/tmp &&\
    wget http://packages.couchbase.com/releases/2.5.0/couchbase-server-enterprise_2.5.0_x86_64.rpm &&\
    rpm -ivh couchbase-server-enterprise_2.5.0_x86_64.rpm &&\
    chkconfig couchbase-server on &&\
    service couchbase-server start

#add start script to the container
ADD start /start

#make the script executable
RUN chmod 0755 /start

EXPOSE 11211 11210 11209 4369 8092 18091 18092 11214 11215

#start mysql service and launch the command console
CMD ["/start"]

构建它时,我收到以下错误..

ulimit: open files: cannot modify limit: Operation not permitted
ulimit: max locked memory: cannot modify limit: Operation not permitted

我在一个论坛上看到我们可以在 docker.conf 文件中设置这些值。但我尝试创建此文件 /etc/init/docker.conf 并将以下几行放入该文件中 -

限制 memlock 无限 无限 限制 nofile 262144

但我仍然得到同样的错误。

如果我在 CentOS VM 上手动执行相同的步骤,它就可以工作。所以我想我需要在 Docker CentOS 映像上设置一些东西。

4

2 回答 2

7

通过使用以下命令在 Docker 主机上设置 ulimit 解决了该问题:

ulimit -l unlimited
ulimit -n 10240 
ulimit -c unlimited

然后在 CentOS 上重启 Docker 服务。这解决了这个问题,因为主机的这些值将被容器继承。

于 2014-07-29T22:29:04.470 回答
1

只有root才能增加硬上限,而且必须是root登录,sudo是不行的。

su root
ulimit -n 10240
于 2015-03-01T22:02:25.060 回答