Ошибка Docker при создании диванной базы — ulimit: открытые файлы: невозможно изменить ограничение: операция не разрешена

Я пытаюсь создать образ докера для Couchbase, и я получаю следующую ошибку с файлом докера в образе CentOS.

# 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, это работает. Итак, я думаю, мне нужно что-то установить в образе Docker CentOS.


person KarthikJ    schedule 25.07.2014    source источник


Ответы (2)


Проблема решена путем установки ulimit на хосте Docker с помощью следующей команды:

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

Затем перезапустите службу Docker в CentOS. Это устранило проблему, поскольку эти значения хоста будут унаследованы контейнером.

person KarthikJ    schedule 29.07.2014
comment
в CentOS добавьте эти команды в файл конфигурации /etc/sysconfig/docker - person mighq; 14.10.2015
comment
Они не работают на fargate/ecs -bash: ulimit: max locked memory: cannot modify limit: Operation not permitted - person Shardj; 26.02.2020

Только root может увеличить жесткий верхний предел, и вы должны войти в систему как root, sudo не будет работать.

su root
ulimit -n 10240
person blented    schedule 01.03.2015
comment
на RedHat я смог изменить ulimit только с root user - person veer7; 26.10.2017