Table of Contents
Install ElasticSearch with docker-compose
두 개 이상의 서버 인스턴스간의 클러스터 구성은 Docker Swarm 을 이용해야 한다고 합니다.
선행작업
- 도커 설치
docker 버전이 높은 경우
볼륨 생성을 compose 파일에서 같이 할 수 있다.
version: "3"
services:
elasticsearch-test:
image: docker.elastic.co/elasticsearch/elasticsearch:7.9.0
container_name: elasticsearch-test
environment:
- node.name=elasticsearch-test
- cluster.name=es-test-cluster
- discovery.seed_hosts=elasticsearch-test
- cluster.initial_master_nodes=elasticsearch-test
- network.host=0.0.0.0
- http.cors.enabled=true
- http.cors.allow-origin=*
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es_data:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
restart: always
volumes:
es_data:
docker 버전이 낮은 경우
Install ElasticSearch
mkdir elasticsearch
cd elasticsearch
# docker v19 부터 volume 명령 사용가능
docker volume create --name=es01_data
docker volume create --name=es02_data
docker volume ls
sudo sysctl -w vm.max_map_count=262144
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
vi docker-compose.yml
version: '2.2'
volumes:
es01_data:
external: true
es02_data:
external: true
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.9.0
container_name: es01
environment:
- node.name=es01
- cluster.name=es-cluster
- discovery.seed_hosts=es01
- cluster.initial_master_nodes=es01
- network.host=0.0.0.0
- http.cors.enabled=true
- http.cors.allow-origin=*
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es01_data:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
restart: always
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.9.0
container_name: es02
environment:
- node.name=es02
- cluster.name=es-cluster
- discovery.seed_hosts=es01
- cluster.initial_master_nodes=es01
- network.host=0.0.0.0
- http.cors.enabled=true
- http.cors.allow-origin=*
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
depends_on:
- es01
volumes:
- es02_data:/usr/share/elasticsearch/data
ports:
- 9201:9200
- 9301:9300
restart: always
실행
docker-compose up -d
docker container logs es01
docker container logs es02
# docker-compose stop
# docker-compose start
# docker-compose down
curl -X GET "localhost:9200"
curl -X GET "localhost:9201"
curl -XGET "localhost:9200/_cat/health?v&pretty"