Docker搭建es集群(超简单)

Docker搭建es集群(超简单)

  • 编写docker-compose.yml
  • 更改挂载目录的权限
  • 更改启动参数
  • 启动测试

编写docker-compose.yml

version: '2.2'
services:
  es01:
    image: elasticsearch:7.7.0
    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=-Xms300m -Xmx300m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /volumn/es-cluster/data01:/usr/share/elasticsearch/data
    ports:
      - 39201:9200
    networks:
      - elastic
  es02:
    image: elasticsearch:7.7.0
    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=-Xms300m -Xmx300m"
    ulimits:
      memlock:
        # 告诉操作系统每一es进程可以无限制分配内存
        soft: -1
        hard: -1
    volumes:
      - /volumn/es-cluster/data02:/usr/share/elasticsearch/data
    networks:
      - elastic
  es03:
    image: elasticsearch:7.7.0
    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=-Xms300m -Xmx300m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /volumn/es-cluster/data03:/usr/share/elasticsearch/data
    networks:
      - elastic

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

networks:
  elastic:
    driver: bridge

更改挂载目录的权限

es不能通过root用户启动,而其他用户没有挂载文件的写入权限,所以要切换到root用户赋予挂载目录权限

chmod 777 data01
chmod 777 data02
chmod 777 data03

更改启动参数

# 更改一个进程可以拥有的VMA(虚拟内存区域)的数量。
sudo sysctl -w vm.max_map_count=262144
# 查看修改结果
sysctl -a|grep vm.max_map_count

启动测试

docker up -d
# -X指定请求的http方法
 curl -X GET "localhost:39201/_cat/nodes?v=true&pretty"

返回节点信息
Docker搭建es集群(超简单)_第1张图片

你可能感兴趣的:(docker,ElasticSearch,elasticsearch,docker,java)