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

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并在其中放置以下行- limit memlock unlimited unlimited limit nofile 262144
但是我仍然得到相同的错误。
如果我在CentOS VM上手动按照相同的步骤操作,它可以正常工作。所以我想我需要在Docker CentOS镜像上设置一些东西。
2个回答

7

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

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

接下来在CentOS上重新启动Docker服务,这将修复问题,因为容器会继承主机的这些值。


在CentOS上,将这些命令添加到/etc/sysconfig/docker配置文件中。 - mighq
2
这些在Fargate/ECS上不起作用:-bash: ulimit: max locked memory: cannot modify limit: Operation not permitted - Shardj

1

只有root用户可以增加硬性上限,您必须以root身份登录,sudo无法工作。

su root
ulimit -n 10240

RedHat 上,我只能通过 root 用户 更改 ulimit - veer7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接