docker compose es集群

创建目录及文件

tree .

.
├── docker-compose.yml
└── elasticsearch
    ├── config
    │   └── elasticsearch.yml
    ├── data1
    ├── data2
    ├── data3
    └── Dockerfile

 

dockerfile:

ARG ELK_VERSION=7.5.1

# https://github.com/elastic/elasticsearch-docker
# FROM docker.elastic.co/elasticsearch/elasticsearch:${ELK_VERSION}
FROM elasticsearch:${ELK_VERSION}
# Add your elasticsearch plugins setup here
# Example: RUN elasticsearch-plugin install analysis-icu

 

elasticsearch.yml

## Default Elasticsearch configuration from Elasticsearch base image.
## https://github.com/elastic/elasticsearch/blob/master/distribution/docker/src/docker/config/elasticsearch.yml
#
cluster.name: "es-docker-cluster"
network.host: 0.0.0.0

## X-Pack settings
## see https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-xpack.html
#
xpack.license.self_generated.type: basic                               #trial为试用版,一个月期限,可更改为basic版本
xpack.security.enabled: false
xpack.monitoring.collection.enabled: false

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

 

docker-compose.yml

version: '3.7'
services:
  es01:
    build:
      context: /Users/xxx/docker/elasticsearch/
      args:
        ELK_VERSION: 7.5.1
    container_name: es01
    volumes:
      - type: bind
        source: /Users/xxx/docker/elasticsearch/config/elasticsearch.yml
        target: /usr/share/elasticsearch/config/elasticsearch.yml
        read_only: true
      - type: volume
        source: data01
        target: /usr/share/elasticsearch/data
    ports:
      - 9200:9200
    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
      - node.master=true
      - node.data=true
      - http.port=9200
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    networks:
      - elastic
  es02:
    build:
      context: /Users/xxx/docker/elasticsearch/
      args:
        ELK_VERSION: 7.5.1
    container_name: es02
    volumes:
      - type: bind
        source: /Users/xxx/docker/elasticsearch/config/elasticsearch.yml
        target: /usr/share/elasticsearch/config/elasticsearch.yml
        read_only: true
      - type: volume
        source: data02
        target: /usr/share/elasticsearch/data
    ports:
      - 9201:9201
    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
      - node.master=true
      - node.data=true
      - http.port=9201
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    networks:
      - elastic
  es03:
    build:
      context: /Users/xxx/docker/elasticsearch/
      args:
        ELK_VERSION: 7.5.1
    container_name: es03
    volumes:
      - type: bind
        source: /Users/xxx/docker/elasticsearch/config/elasticsearch.yml
        target: /usr/share/elasticsearch/config/elasticsearch.yml
        read_only: true
      - type: volume
        source: data03
        target: /usr/share/elasticsearch/data
    ports:
      - 9202:9202
    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
      - node.master=true
      - node.data=true
      - http.port=9202
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    networks:
      - elastic

volumes:
  data01:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /Users/xxx/docker/elasticsearch/data1

  data02:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /Users/xxx/docker/elasticsearch/data2

  data03:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /Users/xxx/docker/elasticsearch/data3

networks:
  elastic:
    driver: bridge

 

运行:

docker-compose up --build -d

 

验证:

浏览器里访问

在浏览器地址栏访问http://localhost:9200/_cat/nodes?pretty 查看节点状态

 

使用elasticsearch-head前端框架

docker pull mobz/elasticsearch-head:5-alpine
docker run -d -p 9100:9100 --name es-head  mobz/elasticsearch-head:5-alpine

浏览器访问http://localhost:9100/

 

参考

https://www.cnblogs.com/caibao666/p/12753274.html

posted @ 2021-08-02 15:42  raindream  阅读(719)  评论(0编辑  收藏  举报