52

ssh ( https://github.com/phusion/baseimage-docker )でコンテナーに接続する Docker コンテナーで、ファイル記述子の制限を正しく設定する必要があります。

すでに試しました:

  • コンテナがこのファイルを無視する limit.conf を編集します
  • upstart プロシージャはhttps://coderwall.com/p/myodcqにありますが、この docker イメージには異なる種類の init プロセスがあります。(それを実行します)
  • /etc/pam.d の pam ライブラリの構成を変更しようとしました
  • sshd_config で ssh の pam を有効にしてみてください

出力は常に同じです。

bash: ulimit: open files: cannot modify limit: Operation not permitted
4

8 に答える 8

56

最新の docker は、コマンド ラインと API による ulimits の設定をサポートしています。たとえば、docker run取る--ulimit <type>=<soft>:<hard>と、これらは好きなだけいくつでも存在できます。したがって、nofileの場合、例は次のようになります--ulimit nofile=262144:262144

于 2015-07-17T11:06:20.080 に答える
10

私は多くのオプションを試しましたが、上記で提案されたいくつかの解決策が 1 つのマシンで機能し、他のマシンでは機能しない理由がわかりません。

機能し、シンプルでコンテナごとに機能するソリューションは次のとおりです。

docker run --ulimit memlock=819200000:819200000 -h <docker_host_name> --name=current -v /home/user_home:/user_home -i -d -t docker_user_name/image_name
于 2015-11-14T22:08:38.837 に答える
3

このdocker runコマンドにはフラグがあり、--ulimitこのフラグを使用して、docker コンテナーで開いているファイルの制限を設定できます。

コンテナーをスピンアップするときに次のコマンドを実行して、開いているファイルの制限を設定します。

docker run --ulimit nofile=<softlimit>:<hardlimit>コロンの前の最初の値はソフト ファイル制限を示し、コロンの後の値はハード ファイル制限を示します。これを確認するには、コンテナーをインタラクティブ モードで実行し、コンテナー シェルで次のコマンドを実行します。ulimit -n

PS:より明確にするために、このブログ投稿をチェックしてください

于 2017-12-19T05:46:44.207 に答える
1

boot2docker の場合、たとえば次のように on に設定でき/var/lib/boot2docker/profileます。

ulimit -n 2018

apt-get が遅くなるため、この制限を高く設定しすぎないように注意してください! バグ#1332440を参照してください。私はdebian jessieでそれを持っていました。

于 2015-03-06T06:02:29.280 に答える