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