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 に答える