[ES] 2. docker 에서 ES 시작하기

Corini·2022년 5월 5일
0

ES

목록 보기
7/8

**[ES] 2. docker 에서 ES 시작하기**

https://velog.velcdn.com/images/soyeon207/post/a5b2c391-03c0-4c6a-9e7c-4da650cff2cd/%E1%84%8C%E1%85%A6%E1%84%86%E1%85%A9%E1%86%A8%E1%84%8B%E1%85%B3%E1%86%AF%20%E1%84%8B%E1%85%B5%E1%86%B8%E1%84%85%E1%85%A7%E1%86%A8%E1%84%92%E1%85%A2%E1%84%8C%E1%85%AE%E1%84%89%E1%85%A6%E1%84%8B%E1%85%AD_-008.png

elasticsearch 에 대해서 간단하게 알아봤으니 한번 es 를 직접 설치해서 사용해보겠습니다. 혹시 es 에 대해서 알고 싶으신 분들은 먼저 아래 글을 읽고 와주세요.➡️ [ES] 1. Elasticsearch 와 루씬

ES를 설치하는 방법

es 를 설치하는 방법은 총 두가지가 있습니다.

첫 번째, 각 컴퓨터에 직접 es 설치하기두 번째, docker 를 사용해서 es 설치하기

docker 를 사용하는 것이 컴퓨터에 직접 설치하는 것보다 환경설정, 오류 등 신경써야할 것들이 적어지며 빠르게 설치할 수 있기 때문에 해당 포스팅에서는 docker 를 사용해서 es 를 사용하도록 하겠습니다. (첫번째 방법으로 시도했다가 오류 폭탄을 받은건 안 비밀😹)

docker 에 대해서 궁금하신 분들은 해당 포스팅을 참고해주세요 ❗️➡️ [이론] docker 란 ?

docker 에 ES 설치하기

본격적으로 docker 에 es 를 설치해보도록 하겠습니다.

⚠ docker 를 처음 사용해보는 경우https://www.docker.com/get-started 에서Docker Desktop 을 다운로드 한 다음 아래 예제를 따라해주세요.

첫번째, es 이미지 다운로드

docker 는 이미지에 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있기 때문에 es 를 docker 에서 실행하기 위해서 es 이미지를 다운받아 줍니다.

es 이미지를 다운로드 받기 위해서

docker hub

에 elasticsearch 를 검색해주도록 하겠습니다

https://velog.velcdn.com/images%2Fsoyeon207%2Fpost%2F17ffd1e8-7929-42ab-b10d-24958b56ab71%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-03-01%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.43.59.png

맨 위에 있는 elasticsearch 를 선택해줍니다. (바로 아래 있는 kibana 를 통해서 kibana 도 이미지가 있구나 를 확인할 수 있습니다)

https://velog.velcdn.com/images%2Fsoyeon207%2Fpost%2Fc8285804-e4b6-4b09-a209-1c28be5036e8%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-03-01%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.46.51.png

오른쪽에 docker pull elasticsearch 명령어를 입력해서 es 이미지를 다운로드 받을 수 있습니다 해당의 경우에는 가장 최신의 버전을 다운로드 받아주지만, es 에서 latest 태그가 존재하지 않아 정상적으로 받아지지 않기 때문에 Tags 를 선택해 원하는 버전을 명시해줘야 합니다.

근데 이상하게 8.0.0 이미지 상 오류 인건지 (2022년 3월 1일 기준) 8.0.0 이미지를 실행했을 때에는 정상적으로 실행이 안되더라고요. 그렇기 때문에 두번째로 최근 버전인 7.9.3 버전을 다운로드 받아주도록 하겠습니다.

docker pull elasticsearch:7.9.3

터미널에서 실행 후 해당 명령어로 docker 이미지가 정상적으로 받아졌는지 확인해줍니다.

docker images

https://velog.velcdn.com/images%2Fsoyeon207%2Fpost%2Ffd5e85d2-eed0-4faf-83ca-11a660a7e7fc%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-03-01%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%206.19.07.png

위 사진 처럼 elasticsearch 이 있으면 정상적으로 설치된 겁니다.

두번째, docker 실행

es 이미지가 정상적으로 받아졌으면, docker 명령어를 통해 컨테이너를 실행해주도록 하겠습니다.

docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name elasticsearchTest elasticsearch:7.9.3

🏃‍♀️ docker run 명령어기본 포맷 : docker run (<옵션>) <이미지 식별자> (<명령어>) (<인자>)-d : 백그라운드 실행-p : 포트 바인딩-e : 환경변수 설정--name : 컨테이너 이름 지정

위 명령어를 실행시켜주고 docker container 상태를 확인할 수 있는

docker ps

명령어로 정상적으로 실행되고 있는지를 확인할 수 있습니다.

https://velog.velcdn.com/images%2Fsoyeon207%2Fpost%2F4bcec547-3a5d-4ba9-a093-dbde30cad0e4%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-03-01%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%206.20.51.png

위에서 지정해준 컨테이너 이름인 elasticsearchTest 로 정상적으로 작동하고 있는 걸 확인할 수 있습니다. docker 는 정상적으로 띄워져 있는 걸 확인했으니 elasticsearch 가 정상적으로 실행중인지 확인해봅시다.

elasticsearch 에 기본적으로 9200 포트는 http 통신, 9300 포트는 tcp 통신을 하도록 설정되어 있는데요. http 통신이 정상적으로 되는지를 확인하기 위해서

curl localhost:9200

명령어를 실행해줍니다.

https://velog.velcdn.com/images%2Fsoyeon207%2Fpost%2F022c64de-76f4-44ca-9a31-b9836995d09a%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-03-01%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%206.21.39.png

정상적으로 정보가 잘 보이는 걸 확인할 수 있습니다 🙂

세번째, es 기본 구조 살펴보기

elasticsearch 컨테이너 안에 들어가서 기본 구조를 살펴보도록 하겠습니다.컨테이너로 들어가기 위한 명령어는 다음과 같습니다.

docker exec -it #{컨테이너id} /bin/bash

#{컨테이너id} 에는 docker ps 로 알아낸 컨테이너 id 를 넣어주면 됩니다.

아래처럼 앞이 elasticsearch 로 바꼈다면 정상적으로 elasticsearch 컨테이너 안에 들어온겁니다 !

https://velog.velcdn.com/images%2Fsoyeon207%2Fpost%2F70a39b17-8059-4ff4-b109-df0fe266d9f7%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-03-07%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2011.17.19.png

ll

을 통해서 전체 파일 구조를 봐보도록 하겠습니다.

https://velog.velcdn.com/images%2Fsoyeon207%2Fpost%2F97175994-0a2b-47b1-85ad-495301e58784%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-03-07%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2011.19.17.png

Untitled

로 구성되어 있는데요. 여기서 가장 주목해서 봐야할 폴더는 ES 실행 환경 설정 파일이 담겨져 있는 ⭐️config⭐️ 폴더 입니다.

configs 폴더는 아래와 같이 구성되어 있는데 하나하나 설명해보도록 하겠습니다.

https://velog.velcdn.com/images%2Fsoyeon207%2Fpost%2Fdf643705-097a-490f-b263-58a6501f1ae5%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-03-07%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2011.23.11.png

Untitled

로 구성되어 있습니다.

앞으로 es 를 공부하면서 가장 많이 볼 파일이 config/elasticsearch.yml 파일인데요.전반적인 실행에 대해서 설정하는 파일입니다. 한번 elasticsearch.yml 파일을 사용해서 cluster_name 을 바꿔보겠습니다.

  1. config 폴더로 이동 (cd config/)
  2. elasticsearch 파일 열기 (vi elasticsearch.yml)
  3. i 입력 후 insert mode 로 변환
  4. cluster.name 변경 (여기선 docker-cluster-test 로 변경해주겠습니다)

https://velog.velcdn.com/images%2Fsoyeon207%2Fpost%2Ff0257a7b-ddcc-4734-9003-3bdb17f8adbb%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-03-08%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2012.08.19.png

  1. 변경사항 저장 (:wq!)
  2. docker 컨테이너 리로드 (docker container restart #{컨테이너명})

을 해주고 다시 elasticsearch 상태를 조회하면 cluster_name 이 docker-cluster-test 로 바뀐 걸 확인 할 수 있습니다 🤓

https://velog.velcdn.com/images%2Fsoyeon207%2Fpost%2F682a68a8-ff12-44a0-925f-f7e39658417c%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-03-08%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2012.09.59.png

cluster_name 외에도 elasticsearch.yml 파일을 통해서 설정할 수 있는 내용들이 많이 있는데요. 이건 추후 공부하면서 조금씩조금씩 더 알아보도록 하겠습니다 !

profile
Coding is playing!

0개의 댓글