반응형
싱글 노드 클러스터
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.10.1
멀티 노드 클러스터
version: '3.3'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1
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=-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.10.1
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=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data02:/usr/share/elasticsearch/data
networks:
- elastic
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1
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=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data03:/usr/share/elasticsearch/data
networks:
- elastic
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
elastic:
driver: bridge
메모리가 안되면 자바 옵션을 Xms Xmx를 128 정도로 다 내려주자.
Node es01 이 localhost:9200 으로 리슨 하고 있고 es02 와 es03 이 도커 네트워크로 통신하고 있다.
포트 9200 이 모든 네트워크의 인터페이스여서 포트를 열어줘야 한다. 리눅스에서 조정하는 방법은 IPTAVLES로 직접 조정해야 한다. 엘라스틱 클러스터는 공개적으로 접속이 가능하고 잠재적으로는 FIREWall 세팅을 무시한다. 만약 9200 포트를 오픈하기를 원하지 않는다면 reverse proxy 를 사용하면 된다. docker-compose.yml 파일에서 9200:9200 이 부분을 127.0.0.1:9200:9200로 변경해주면, 오직 호스트 머신만 엘라스틱에 접근할 수 있다.
도커 재시작 시에도 데이터를 유지하기 위해 volumes: 를 본인 pc 의 폴더로 설정해준다.
실행
docker-compose up
잘 실행한지 확인
curl -X GET "localhost:9200/_cat/nodes?v=true&pretty"
실행 정지
docker-compose down
로컬 데이터 볼륨 까지 삭제
docker-compose down -v
실행 후 Docker 대시보드에서 본 모습입니다.
엘라스틱 인덱스 추가 및 데이터 추가
curl -X POST "localhost:9200/index_test/_doc/?pretty" -H 'Content-Type: application/json' -d'
{
"user" : "testuser",
"post_date" : "2020-06-17T14:12:12",
"message" : "trying out Elasticsearch"
}
'
추가 한 데이터를 키바나에서 확인해 보자
키바나 접속
http://localhost:5601
위에서 만든 index_test 가 있다.
참고문헌
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html [공식 문서]
반응형
'인프라 > docker' 카테고리의 다른 글
도커 설치 부터 실행 및 mysql 도커 실행 및 설치 (0) | 2024.05.24 |
---|---|
[docker] docker compose 시작하기 (0) | 2021.03.31 |
[docker] 도커 redis 설치 및 접속 (2) | 2021.01.12 |
[docker] 도커 jenkins 시작하기 (0) | 2020.12.18 |
[docker] kafka docker 시작하기 (0) | 2020.11.15 |