ドッカーの画像を使用しようとしていますelk-docker( https://elk-docker.readthedocs.io/ )、Docker Composeを使用します。 .ymlファイルは次のようになります。
elk:
image: sebp/elk
ports:
- "5601:5601"
- "9200:9200"
- "5044:5044"
Sudo docker-compose upコマンドを実行すると、コンソールに次のように表示されます。
* Starting Elasticsearch Server
sysctl: setting key "vm.max_map_count": Read-only file system
...fail!
waiting for Elasticsearch to be up (1/30)
waiting for Elasticsearch to be up (2/30)
waiting for Elasticsearch to be up (3/30)
waiting for Elasticsearch to be up (4/30)
waiting for Elasticsearch to be up (5/30)
waiting for Elasticsearch to be up (6/30)
waiting for Elasticsearch to be up (7/30)
waiting for Elasticsearch to be up (8/30)
waiting for Elasticsearch to be up (9/30)
waiting for Elasticsearch to be up (10/30)
waiting for Elasticsearch to be up (11/30)
waiting for Elasticsearch to be up (12/30)
waiting for Elasticsearch to be up (13/30)
waiting for Elasticsearch to be up (14/30)
waiting for Elasticsearch to be up (15/30)
waiting for Elasticsearch to be up (16/30)
waiting for Elasticsearch to be up (17/30)
waiting for Elasticsearch to be up (18/30)
waiting for Elasticsearch to be up (19/30)
waiting for Elasticsearch to be up (20/30)
waiting for Elasticsearch to be up (21/30)
waiting for Elasticsearch to be up (22/30)
waiting for Elasticsearch to be up (23/30)
waiting for Elasticsearch to be up (24/30)
waiting for Elasticsearch to be up (25/30)
waiting for Elasticsearch to be up (26/30)
waiting for Elasticsearch to be up (27/30)
waiting for Elasticsearch to be up (28/30)
waiting for Elasticsearch to be up (29/30)
waiting for Elasticsearch to be up (30/30)
Couln't start Elasticsearch. Exiting.
Elasticsearch log follows below.
cat: /var/log/elasticsearch/elasticsearch.log: No such file or directory
docker_elk_1 exited with code 1
どうすれば問題を解決できますか?
おそらく、ホスト自体のvm.max_map_count
に/etc/sysctl.conf
を設定する必要があります。これにより、Elasticsearchがコンテナ内からそれを行わないようにします。目的の値がわからない場合は、現在の設定を2倍にして、Elasticsearchが正常に起動するまで続行してください。 ドキュメント推奨 少なくとも262144。
それには2つの方法があります。
Docker Hostターミナル(Docker CLI)でコマンドを実行します。
docker-machine ssh
Sudo sysctl -w vm.max_map_count=262144
exit
Dockerコンテナーの中に入る
# docker exec -it <container_id> /bin/bash
現在のmax_map_count値を表示できます
# more /proc/sys/vm/max_map_count
一時的なセットmax_map_count値(コンテナー(ホスト)の再起動は持続しませんmax_map_count値)
# sysctl -w vm.max_map_count=262144
永久的に設定された値
1. # vi /etc/sysctl.conf
vm.max_map_count=262144
2. # vi /etc/rc.local
#put parameter inside rc.local file
echo 262144 > /proc/sys/vm/max_map_count