创建couchbase时出现Docker错误 - ulimit:打开文件:无法修改限制:不允许操作

时间:2014-07-25 17:43:46

标签: centos docker ulimit linux-containers

我正在尝试为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图像上设置一些东西。

2 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:1)

只有root可以增加硬上限,你必须以root用户身份登录,sudo不会工作。

su root
ulimit -n 10240