Deploy a Multi-node Elasticsearch Cluster with Docker Compose

Edward Cernera
14 min readJan 19, 2021
Docker, Elasticsearch, Kibana, NGINX

A link to the companion GitHub repository is available at the bottom of this article.

Quick Intro to Elasticsearch

Why Elasticsearch?

Elasticsearch is one of the most popular and powerful search engines made available to the open source community today. Some of the major, consumer software companies utilize Elasticsearch, as well as the rest of the ELK (Elasticsearch, Logstash, Kibana) stack, to store/manage/query their data and logs. Elasticsearch’s multi-node cluster setup allows you to easily scale your Elasticsearch deployment as the size of your data grows and/or the number of queries increases. Elasticsearch can be scaled either vertically on the same server or horizontally across servers — although cross-server deployments in a production environment typically use Docker Swarm or Kubernetes, which falls outside the scope of this beginner-intended article. Typical Elasticsearch deployments also have a companion UI service called Kibana; which is an easy-to-use portal used to manage your Elasticsearch instance.

How does Elasticsearch work?

Elasticsearch is written in Java and built on top of Apache Lucene. Lucene is the “meat and potatoes” library for Elasticsearch, which handles the…

--

--

Edward Cernera

Software Engineer | I write software tutorials because I can’t find them anywhere. Creator of DealPunkk - dealpunkk.com | About Me - cernera.me/edward