web-dev-qa-db-ja.com

ElasticSearchドッカーコンテナーMacホストのmax_map_countを更新する

elasticsearchdockerを開始するために this containerを使用しています。 manual に従って、max_map_countコンテナを開始します

Sudo sysctl -w vm.max_map_count = 262144

しかし..ホスト(コンテナ)で、起動できない間に起動した後に更新できます。私は何か間違っていますか?

エラー:bootstrap=失敗した最大仮想メモリ領域vm.max_map_count [65530]のチェックが失敗した可能性があります。少なくとも[262144]に増やしてください。

ホストマシン(Mac)で実行しようとすると、次のエラーが表示されます。

sysctl:不明なoid 'vm.max_map_count'

Dockerエンジンは、Lunix VMをすべてのコンテナーが実行されている場所にインストールします。制限を増やすコマンドは、MacではなくLinuxホストに対して実行する必要があります。

Dockerエンジンによってインストールされたターミナル経由でLinux VMにアクセスするにはどうすればよいですか?

17
Alexey Strakh

Docker Toolboxで

Dockerツールボックスを使用している場合は、ターミナルからDockerクライアントを試してから構成を行います。

docker-machine ssh
Sudo sysctl -w vm.max_map_count=262144
exit

Docker For Macの場合:

Vm_max_map_count設定は、xhyve仮想マシン内で設定する必要があります。

$ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.AMD64-linux/tty

ユーザー名とパスワードの入力を求められた場合、rootでパスワードなしでログインします。

画面に何も表示されない場合は、Enterキーを押します。

次に、Linuxの場合と同様にsysctl設定を構成します。

sysctl -w vm.max_map_count=262144

Control-A Control- \で終了します。

ドキュメント こちら をご覧ください。

持続性

場合によっては、この変更はVMの再起動後も保持されません。そのため、screen 'dに入れながら、ファイル/etc/sysctl.d/00-Alpine.confおよびパラメーターvm.max_map_count=262144ファイルの終わりまで。

34
Octavio Soto

最新のDocker For Mac(バージョン18.06.0-ce-mac70)の場合:

$ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

空白の画面で、Enterキーを押します。

次に、Linuxの場合と同様にsysctl設定を構成します。

sysctl -w vm.max_map_count=262144

Control-A Control- \で終了

16
Charith