docker compose配置Elasticsearch6.5.4集群

docker compose ES

version: '3'
services:
  es01:
    image: elasticsearch:6.5.4
    container_name: es01
    restart: always
    volumes:
      - ./es/es01/data:/usr/share/elasticsearch/data:rw
      - ./es/es01/logs:/user/share/elasticsearch/logs:rw
    environment:
        - node.name=es01
        - cluster.name=docker-cluster
        - bootstrap.memory_lock=true
        - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
          #- http.cors.enabled=true   这两个不要设置 因为使用PostMan和es-head时发出的请求有不符合要求
          #- http.cors.allow-origin= "*" 同时我们实在docker的内网中,不存在跨域问题
        - node.master=true 
        - node.data=true
        - discovery.zen.ping.unicast.hosts=es01:9300,es02:9300,es03:9300
          # - discovery.zen.minimum_master_nodes=2  我们固定的把es01设置为主节点
        - network.bind_host=0.0.0.0
          #- network.publish_host=192.168.216.129
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - "9200:9200"
    networks:
      - esnet
  
  es02:
    image: elasticsearch:6.5.4
    container_name: es02
    restart: always
    volumes:
        - ./es/es02/data:/usr/share/elasticsearch/data
        - ./es/es02/logs:/user/share/elasticsearch/logs
    environment:
        - node.name=es02
        - cluster.name=docker-cluster
        - bootstrap.memory_lock=true
        - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
          #- http.cors.enabled=true
          #- http.cors.allow-origin= "*"
        - node.master=false
        - node.data=true
        - discovery.zen.ping.unicast.hosts=es01:9300,es02:9300,es03:9300
          #- discovery.zen.minimum_master_nodes=2
        - network.bind_host=0.0.0.0
          #- network.publish_host=192.168.216.129 
    ports:
      - "9201:9200"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    networks:
      - esnet
  
  es03:
    image: elasticsearch:6.5.4
    container_name: es03
    restart: always
    volumes:
        - ./es/es03/data:/usr/share/elasticsearch/data
        - ./es/es03/logs:/user/share/elasticsearch/logs
    environment:
        - node.name=es03
        - cluster.name=docker-cluster
        - bootstrap.memory_lock=true
        - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
          # - http.cors.enabled=true
          #- http.cors.allow-origin= "*"
        - node.master=false 
        - node.data=true
        - discovery.zen.ping.unicast.hosts=es01:9300,es02:9300,es03:9300   
          #- discovery.zen.minimum_master_nodes=2
        - network.bind_host=0.0.0.0
          #- network.publish_host=192.168.216.129        
    ports:
      - "9202:9200"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    networks:
      - esnet
  
       
networks:
  esnet:
version: '3'
services:
  es01:
    image: elasticsearch:6.5.4
    container_name: es01
    restart: always
    volumes:
      - ./es/es01/data:/usr/share/elasticsearch/data:rw
      - ./es/es01/logs:/user/share/elasticsearch/logs:rw
    environment:
        - node.name=es01
        - cluster.name=docker-cluster
        - bootstrap.memory_lock=true
        - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
          #- http.cors.enabled=true   这两个不要设置 因为使用PostMan和es-head时发出的请求有不符合要求
          #- http.cors.allow-origin= "*" 同时我们实在docker的内网中,不存在跨域问题
        - node.master=true 
        - node.data=true
        - discovery.zen.ping.unicast.hosts=es01:9300,es02:9300,es03:9300
          # - discovery.zen.minimum_master_nodes=2  我们固定的把es01设置为主节点
        - network.bind_host=0.0.0.0
          #- network.publish_host=192.168.216.129
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - "9200:9200"
    networks:
      - esnet
  
  es02:
    image: elasticsearch:6.5.4
    container_name: es02
    restart: always
    volumes:
        - ./es/es02/data:/usr/share/elasticsearch/data
        - ./es/es02/logs:/user/share/elasticsearch/logs
    environment:
        - node.name=es02
        - cluster.name=docker-cluster
        - bootstrap.memory_lock=true
        - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
          #- http.cors.enabled=true
          #- http.cors.allow-origin= "*"
        - node.master=false
        - node.data=true
        - discovery.zen.ping.unicast.hosts=es01:9300,es02:9300,es03:9300
          #- discovery.zen.minimum_master_nodes=2
        - network.bind_host=0.0.0.0
          #- network.publish_host=192.168.216.129 
    ports:
      - "9201:9200"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    networks:
      - esnet
  
  es03:
    image: elasticsearch:6.5.4
    container_name: es03
    restart: always
    volumes:
        - ./es/es03/data:/usr/share/elasticsearch/data
        - ./es/es03/logs:/user/share/elasticsearch/logs
    environment:
        - node.name=es03
        - cluster.name=docker-cluster
        - bootstrap.memory_lock=true
        - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
          # - http.cors.enabled=true
          #- http.cors.allow-origin= "*"
        - node.master=false 
        - node.data=true
        - discovery.zen.ping.unicast.hosts=es01:9300,es02:9300,es03:9300   
          #- discovery.zen.minimum_master_nodes=2
        - network.bind_host=0.0.0.0
          #- network.publish_host=192.168.216.129        
    ports:
      - "9202:9200"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    networks:
      - esnet
  
       
networks:
  esnet:

注:使用命令docker logs es01查看容器日志,若看到 java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes问题,是宿主机host挂载的data目录权限不够

chmod 777 data

即可解决

docker compose kibana

后续更新。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值