簡體   English   中英

如果使用docker安裝了elasticsearch和kibana,如何創建ES集群和存儲數據

[英]how to create ES cluster and store data if elastic search and kibana is installed using docker

我在 ubuntu 機器上使用 docker 鏡像安裝了 Elastic Search 和 Kibana,用於運行的命令是:

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.5.1

docker run --link 36c0ea06f9e3:elasticsearch -p 5601:5601 docker.elastic.co/kibana/kibana:7.5.1

它在我的本地機器上成功運行。

現在,當您嘗試創建具有一個主從節點的集群節點時,我主要關心的是,用戶需要編輯/etc/elasticsearc/elasticsearch.yml

但在這種情況下(在 ubuntu 中使用 docker image 安裝)。

沒有創建這樣的文件或文件夾。 請讓我知道在這種情況下如何創建集群和存儲數據。

您在第一個 docker run 語句中已經有了部分解決方案。 elasticsearch的docker鏡像是使用環境變量配置的。 例如,您的運行語句使用-e "discovery.type=single-node"標志將節點設置為單節點模式。 您可以在此處找到配置選項的完整列表。

您還可以使用主機共享卷與主機共享配置目錄:

docker run -p 9200:9200 -p 9300:9300 -v <your-dir>/elasticsearch.yml/:/usr/share/elasticsearch/config/elasticsearch.yml docker.elastic.co/elasticsearch/elasticsearch:7.5.1

這允許您直接從主機文件系統編輯your_dir/elasticsearch.yml中的配置。 在嘗試啟動容器之前,只需確保配置文件存在於指定目錄中。

來自官方指南,您可以使用環境變量將選項傳遞給/etc/elasticsearc/elasticsearch.yml

這是示例 docker-compose.yml:

version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.5.1
    container_name: es01
    environment:
      - node.name=es01
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es02,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.5.1
    container_name: es02
    environment:
      - node.name=es02
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data02:/usr/share/elasticsearch/data
    networks:
      - elastic
  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.5.1
    container_name: es03
    environment:
      - node.name=es03
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es02
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data03:/usr/share/elasticsearch/data
    networks:
      - elastic

volumes:
  data01:
    driver: local
  data02:
    driver: local
  data03:
    driver: local

networks:
  elastic:
    driver: bridge

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM