-
Docker를 활용하여 ElasticSearch 설치ElasticSearch 2024. 9. 19. 14:29반응형
1. Docker 설치 및 설정
먼저, Docker가 시스템에 설치되어 있어야 합니다. Docker가 설치되지 않은 경우, 아래의 절차에 따라 Docker를 설치합니다.
1.1 Docker 설치 (Windows, macOS, Linux)
- Docker 공식 사이트에서 운영체제에 맞는 Docker를 다운로드합니다.
- 다운로드한 파일을 실행하여 Docker Desktop을 설치합니다. 설치 과정은 운영체제별로 다를 수 있지만, 일반적으로 설치 마법사를 따라 쉽게 설치할 수 있습니다.
- 설치가 완료되면 Docker를 실행하고, docker --version 명령어로 Docker가 정상적으로 설치되었는지 확인합니다.
docker --version
1.2 Docker가 제대로 설치되었는지 확인
정상적으로 설치되었다면, Docker 명령어를 통해 버전이 출력됩니다. 만약 Docker가 실행되지 않거나 버전이 표시되지 않으면 Docker Desktop을 재시작하고 다시 확인합니다.
2. Elasticsearch Docker 이미지 다운로드
Elasticsearch는 Docker 이미지를 통해 쉽게 설치할 수 있습니다. Elasticsearch 7.17.24 버전의 Docker 이미지를 다운로드하고 실행하는 방법을 설명하겠습니다.
2.1 Elasticsearch Docker 이미지 다운로드
Docker Hub에서 Elasticsearch 7.17.24 버전을 다운로드하려면, 아래 명령어를 실행합니다.
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.24
이 명령어는 Elasticsearch 7.17.24 버전의 Docker 이미지를 다운로드합니다. 다운로드 과정은 인터넷 속도와 이미지 크기에 따라 다소 시간이 걸릴 수 있습니다.
3. Docker로 Elasticsearch 실행하기
Elasticsearch Docker 이미지를 다운로드한 후, 컨테이너를 실행해야 합니다. 기본적으로 Elasticsearch는 하나의 노드로 실행할 수 있으며, 여러 설정을 통해 확장할 수 있습니다.
3.1 단일 노드로 Elasticsearch 실행
아래 명령어를 사용하여 Elasticsearch 7.17.24 버전을 단일 노드로 실행합니다.
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.17.24
- -d: 컨테이너를 백그라운드에서 실행합니다.
- --name elasticsearch: 컨테이너 이름을 elasticsearch로 지정합니다.
- -p 9200:9200: 호스트의 9200 포트와 컨테이너의 9200 포트를 매핑합니다. 이 포트는 Elasticsearch의 HTTP API에 사용됩니다.
- -p 9300:9300: 호스트의 9300 포트와 컨테이너의 9300 포트를 매핑합니다. 이 포트는 노드 간 통신에 사용됩니다.
- -e "discovery.type=single-node": 단일 노드 모드로 Elasticsearch를 실행하기 위한 환경 변수를 설정합니다.
- docker.elastic.co/elasticsearch/elasticsearch:7.17.24: Elasticsearch 7.17.24 버전의 Docker 이미지를 사용합니다.
3.2 실행 확인
컨테이너가 정상적으로 실행되면, 아래 명령어로 실행 중인 컨테이너 목록을 확인할 수 있습니다.
docker ps
Elasticsearch가 정상적으로 실행 중이라면, 다음과 유사한 출력이 나옵니다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d6f1c3f2ed0b docker.elastic.co/elasticsearch/elasticsearch:7.17.24 "/bin/tini -- /usr/l…" 10 seconds ago Up 9 seconds 0.0.0.0:9200->9200/tcp, 9300/tcp elasticsearch
3.3 Elasticsearch 상태 확인
Elasticsearch가 정상적으로 실행되고 있는지 확인하려면, 브라우저에서 http://localhost:9200으로 접속하거나, 아래 명령어로 확인할 수 있습니다.
curl -X GET "localhost:9200/"
정상적으로 실행 중이라면, 다음과 같은 응답을 받을 수 있습니다.
{ "name" : "d6f1c3f2ed0b", "cluster_name" : "docker-cluster", "cluster_uuid" : "nNUgB6jTRCm", "version" : { "number" : "7.17.24", "build_flavor" : "default", "build_type" : "docker", "build_hash" : "abc123def", "build_date" : "2023-12-01T13:06:25.388921Z", "build_snapshot" : false, "lucene_version" : "8.11.1", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
4. Elasticsearch 설정 및 데이터 유지
기본적으로 Docker로 실행한 Elasticsearch 컨테이너는 컨테이너가 중지되거나 삭제되면 데이터가 사라질 수 있습니다. 데이터를 유지하려면 볼륨 마운트를 설정하여 데이터를 호스트 디렉토리로 저장할 수 있습니다.
4.1 볼륨 마운트를 사용한 Elasticsearch 실행
아래 명령어로 데이터를 호스트의 디렉토리와 마운트하여 컨테이너가 중지되어도 데이터를 유지할 수 있습니다.
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v /path/to/your/data:/usr/share/elasticsearch/data docker.elastic.co/elasticsearch/elasticsearch:7.17.24
- -v /path/to/your/data:/usr/share/elasticsearch/data: 호스트의 /path/to/your/data 디렉토리와 컨테이너의 /usr/share/elasticsearch/data 디렉토리를 연결합니다. 이 경로는 Elasticsearch 데이터가 저장되는 기본 경로입니다.
4.2 Elasticsearch 환경 변수 설정
필요에 따라 Elasticsearch의 설정을 환경 변수로 전달할 수 있습니다. 예를 들어, 메모리 설정이나 클러스터 설정을 환경 변수로 지정할 수 있습니다.
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" docker.elastic.co/elasticsearch/elasticsearch:7.17.24
- -e "ES_JAVA_OPTS=-Xms512m -Xmx512m": Elasticsearch에 할당할 최소 및 최대 힙 메모리를 각각 512MB로 설정합니다.
5. Elasticsearch 컨테이너 관리
Docker로 실행한 Elasticsearch 컨테이너를 중지, 시작, 삭제하는 방법을 설명합니다.
5.1 컨테이너 중지
컨테이너를 중지하려면, 다음 명령어를 사용합니다.
docker stop elasticsearch
5.2 컨테이너 재시작
중지된 컨테이너를 다시 시작하려면, 아래 명령어를 사용합니다.
docker start elasticsearch
5.3 컨테이너 삭제
컨테이너를 삭제하려면, 먼저 중지한 후 삭제할 수 있습니다.
docker rm elasticsearch
컨테이너를 삭제해도 볼륨 마운트를 설정한 경우, 호스트에 저장된 데이터는 유지됩니다.
반응형'ElasticSearch' 카테고리의 다른 글
ElasticSearch - 매핑(mapping) (0) 2024.09.22 ElasticSearch - 인덱스와 샤드 (0) 2024.09.22 Docker로 Kibana ElasticSearch 설치 후 연동 (0) 2024.09.19 Docker를 활용하여 Kibana 설치하기 (0) 2024.09.19 ElasticSearch - 루씬(Lucene) (0) 2024.08.31