Come usare Elasticsearch in Docker con Docker Compose

Elasticsearch è un motore di ricerca e analisi full-text distribuito molto usato per log, analisi di dati e ricerche avanzate. Usarlo tramite Docker Compose semplifica enormemente la configurazione e l'esecuzione in ambienti di sviluppo o test.

1. Prerequisiti

  • Docker installato
  • Docker Compose installato

2. Creare il file docker-compose.yml

Per iniziare, crea una directory per il progetto e al suo interno un file docker-compose.yml con il seguente contenuto:


services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.13.4
    container_name: elasticsearch
    environment:
      - discovery.type=single-node
      - xpack.security.enabled=false
    ports:
      - "9200:9200"
      - "9300:9300"
    volumes:
      - esdata:/usr/share/elasticsearch/data

volumes:
  esdata:

Questa configurazione avvia Elasticsearch in modalità singolo nodo con la sicurezza disattivata, utile in fase di sviluppo.

3. Avviare Elasticsearch

Per avviare il container, esegui:

docker compose up -d

Controlla lo stato del servizio con:

docker compose ps

4. Verificare che Elasticsearch sia attivo

Una volta avviato, puoi verificare che Elasticsearch risponda correttamente eseguendo:

curl http://localhost:9200

La risposta dovrebbe essere simile a questa:

{
  "name" : "elasticsearch",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "...",
  "version" : {
    "number" : "8.13.4",
    ...
  },
  "tagline" : "You Know, for Search"
}

5. Fermare e rimuovere i container

Per fermare i servizi:

docker compose down

Per rimuovere anche i volumi:

docker compose down -v

Conclusione

Con pochi passaggi e usando Docker Compose, puoi avere un'istanza di Elasticsearch pronta per lo sviluppo locale. Puoi estendere questa configurazione aggiungendo Kibana o Beats, oppure attivare le opzioni di sicurezza in ambienti di produzione.

Torna su