Skip to content

一、搭建 Elasticsearch 集群

要在 Docker 中启动并运行一个三节点 Elasticsearch 集群,您可以使用 Docker Compose:

  1. 创建一个docker-compose.yml文件:
yaml
version: '2.2'
services:
  es01:
    # 修改版本
    image: docker.elastic.co/elasticsearch/elasticsearch:版本
    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:版本
    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.13.2
    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
networks:
  elastic:
    driver: bridge
  1. 创建3个挂载数据的文件夹, 并且赋予读写权限。
sh
$ mkdir data01 data02 data03 && chmod 775 data01 data02 data03
  1. 运行 docker-compose 启动ES集群:
sh
$ docker-compose up -d
  1. 使用命令_cat/nodes请求以查看节点是否已启动并正在运行:
sh
$ curl -X GET "localhost:9200/_cat/nodes?v=true&pretty"
  1. 正常显示结果:
sh
ip         heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.21.0.2           39          99  70    2.96    1.12     0.64 dilm      -      es03
172.21.0.3           25          99  69    2.96    1.12     0.64 dilm      *      es01
172.21.0.4           39          99  70    2.96    1.12     0.64 dilm      -      es02