J'essaie d'utiliser l'image du docker elk-docker ( https://elk-docker.readthedocs.io/ ) à l'aide de Docker Compose. Le fichier .yml est comme ceci:
elk:
image: sebp/elk
ports:
- "5601:5601"
- "9200:9200"
- "5044:5044"
Lorsque j'exécute la commande Sudo docker-compos up, la console affiche:
* 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
Comment puis-je résoudre le problème?
Vous devez probablement définir vm.max_map_count
dans /etc/sysctl.conf
sur l'hôte lui-même, afin qu'Elasticsearch n'essaye pas de le faire depuis l'intérieur du conteneur. Si vous ne connaissez pas la valeur souhaitée, essayez de doubler le paramètre actuel et continuez jusqu'au démarrage réussi d'Elasticsearch. Documentation recommandée au moins 262144.
Vous pouvez le faire de 2 manières.
Dans le terminal hôte Docker (CLI Docker), exécutez les commandes suivantes:
docker-machine ssh
Sudo sysctl -w vm.max_map_count=262144
exit
Allez dans votre conteneur de docker
# docker exec -it <container_id> /bin/bash
Vous pouvez voir votre max_map_count valeur
# more /proc/sys/vm/max_map_count
Ensemble temporaire max_map_count value (le redémarrage du conteneur (hôte) ne persistera pas max_map_count value)
# sysctl -w vm.max_map_count=262144
Définir en permanence la valeur
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