Setting Up Elasticsearch with Docker
Overview
Prerequisites
Single-Node Docker Compose Setup
# docker-compose.yml
version: "3.8"
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0
container_name: es01
environment:
- node.name=es01
- cluster.name=local-dev
- discovery.type=single-node
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD:-changeme}
- xpack.security.enabled=true
- xpack.security.http.ssl.enabled=false # HTTP only for local dev
- xpack.security.transport.ssl.enabled=false
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es_data:/usr/share/elasticsearch/data
ports:
- "9200:9200"
healthcheck:
test: >
curl -s -u elastic:${ELASTIC_PASSWORD:-changeme}
http://localhost:9200/_cluster/health
| grep -qE '"status":"(green|yellow)"'
interval: 15s
timeout: 10s
retries: 8
start_period: 30s
kibana:
image: docker.elastic.co/kibana/kibana:8.17.0
container_name: kibana01
depends_on:
elasticsearch:
condition: service_healthy
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
- ELASTICSEARCH_USERNAME=kibana_system
- ELASTICSEARCH_PASSWORD=${KIBANA_PASSWORD:-changeme}
ports:
- "5601:5601"
volumes:
es_data:
driver: localStarting the Stack
Verifying Elasticsearch
Setting Up the Kibana System User
Kibana Dev Tools
Common Memory Issue
Stopping and Cleaning Up
Pinning Versions
Summary
Last updated