version: '2.2' services: es01: image: docker.elastic.co/elasticsearch/elasticsearch:7.17.5 container_name: es01 environment: - node.name=es01 - cluster.name=es-docker-cluster - discovery.seed_hosts=es02 - cluster.initial_master_nodes=es01,es02 - 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.17.5 container_name: es02 environment: - node.name=es02 - cluster.name=es-docker-cluster - discovery.seed_hosts=es01 - cluster.initial_master_nodes=es01,es02 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - data02:/usr/share/elasticsearch/data networks: - elastic kibana: container_name: kibana image: docker.elastic.co/kibana/kibana:7.17.5 environment: ELASTICSEARCH_HOSTS: '["http://es01:9200","http://es02:9200"]' networks: - elastic depends_on: - es01 ports: - 5601:5601 volumes: data01: driver: local data02: driver: local networks: elastic: driver: bridge