使用 docker-compose 的简单 Elasticsearch 设置
以下 docker-compose.yml 是在基于 docker 的设置中使用 ElasticSearch 的简单起点:
docker-compose-elasticsearch.yml
services:
elasticsearch1:
image: docker.elastic.co/elasticsearch/elasticsearch:7.13.4
container_name: elasticsearch1
environment:
- cluster.name=docker-cluster
- node.name=elasticsearch1
- cluster.initial_master_nodes=elasticsearch1
- bootstrap.memory_lock=true
- http.cors.allow-origin=http://localhost:1358,http://127.0.0.1:1358
- http.cors.enabled=true
- http.cors.allow-headers=X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
- http.cors.allow-credentials=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./esdata1:/usr/share/elasticsearch/data
ports:
- 9200:9200
dejavu:
image: appbaseio/dejavu
container_name: dejavu
ports:
- 1358:1358现在创建具有正确权限的 esdata1 目录:
create_esdata_dir.sh
sudo mkdir esdata1
sudo chown -R 1000:1000 esdata1我们还需要配置 vm.max_map_count sysctl 参数:
set_vm_max_map_count.sh
echo -e "\nvm.max_map_count=524288\n" | sudo tee -a /etc/sysctl.conf && sudo sysctl -w vm.max_map_count=524288我建议将它放在 /opt/elasticsearch,但你可以放在任何你喜欢的地方。
如果你想在启动时自动启动它,请参见在 10 秒内为你的 docker-compose 项目创建 systemd 服务或只需使用该文章中的此代码片段:
create_docker_compose_service.sh
curl -fsSL https://techoverflow.net/scripts/create-docker-compose-service.sh | sudo bash /dev/stdin这将创建名为 elasticsearch 的 systemd 服务(如果你的目录名为 elasticsearch 如 /opt/elasticsearch)并立即启用和启动它。因此你可以使用以下命令重启
restart_elasticsearch.sh
sudo systemctl restart elasticsearch并使用以下命令查看日志
journalctl_elasticsearch.sh
sudo journalctl -xfu elasticsearch对于涉及多个节点的更复杂设置,请参见我们之前关于ElasticSearch docker-compose.yml 和 systemd 服务生成器的文章
Check out similar posts by category:
Container, Databases, Docker, ElasticSearch
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow