코딩과 결혼합니다

230802 - Docker로 Elasticsearch 설치,실행 + WSL2 설치 + Linux 배포 설치 본문

2세/DevOps

230802 - Docker로 Elasticsearch 설치,실행 + WSL2 설치 + Linux 배포 설치

코딩러버 2023. 8. 2. 11:39
728x90

이번 실전프로젝트에서는 Elasticsearch를 이용해서 검색기능을 만들어보고자 한다.

엘라스틱서치를 사용하기 전에 설정을 해주어야 하는데, 나는 도커 이미지를 사용하기로 하였다.

https://www.docker.com/get-started/

 

도커를 다운로드 받고 실행을 하는데 어떤 경고문? 같은게 뜨고 나를 이곳으로 인도했다. (WSL2가 설치되어 있지 않아서 인 것 같다.)  

https://learn.microsoft.com/ko-kr/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package

 

이전 버전 WSL의 수동 설치 단계

wsl install 명령을 사용하지 않고 이전 버전의 Windows에 WSL을 수동으로 설치하는 방법에 대한 단계별 지침입니다.

learn.microsoft.com

 


 

 

6단계 : 선택한 Linux 배포 설치에서는 Ubuntu 22.04 LTS를 선택했고 실행한 다음에는 Linux 사용자 이름 및 암호 설정을 해주었다. 설치한 걸 실행하자마자 바로 설정할 수 있게 떴다. 그런데 암호 부분에서 입력한 게 보이지 않아 뭔가 오류가 난 줄 알고 그냥 껐다가 켰는데 설정이 이미 끝나버린 것. 다행히 암호를 다시 설정할 수 있는 명령어가 있어서 다시 설정해 주었다.

암호를 입력하는 동안에는 화면에 아무것도 나타나지 않습니다. 이를 블라인드 타이핑이라고 합니다. 입력하는 내용을 볼 수 없습니다. 이는 완전히 정상입니다.
암호를 변경하거나 초기화하려면 Linux 배포판을 열고 passwd 명령을 입력. 현재 암호를 입력하고 새 암호를 입력하라는 메시지가 표시된 다음, 새 암호를 확인하라는 메시지가 표시됨.

음? 나는 현재 암호가 뭔지 모르는 상태에서 그냥 내가 쓰고 싶었던 암호를 쳤는데 어떻게 잘 설정이 되었넹...? 모르겠다 ㅎㅎㅎ 아무튼 사용자 이름 및 암호까지 설정 끝! 버전도 확인해 보았다.

 

ubuntu
PowerShell
cmd


 

그리고 도커가 이제 잘 실행된다!

 

 


https://wiken.io/b/1464/2815

 

위캔 | [docker] 엘라스틱 서치로 검색엔진 만들기 - 💪 이명한 기술블로그

 

wiken.io

위의 블로그를 참고하여

(1) 엘라스틱 서치를 실행하기 위한 설정

(2) 엘라스틱 실행하기

(3) 엘라스틱이 잘 작동되는지 확인하기

이미지 버전은 최신 버전인 8.8.1로 깔았는데 블로그를 보며 따라한 엘라스틱서치는 7.16.1 이다. 나중에 문제가 생기지는않을까 걱정된다.

내가 입력했던 파일을 8.8.1로 수정한 뒤에 도커를 껐다가 켜봐도 같은 결과가 나오길래 다시 돌려놨다. 엘라스틱서치를 kill하고 다시 설치하는 것도 생각해보았는데 중간에 어떤일이 일어날지 모르겠고 어떻게 하는지도 모르겠다 흑흑 일단은 잘 실행은 되니 이 부분은 조금 더 공부해 봐야겠다.


다른 방법

실행하던 것들 다끄고 파일을 지운다음에 명령어로 간단하게 진행함

 

docker pull elasticsearch:7.16.1

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

오류 : 이와 같은 error 가 뜬다면 이미 docker port가 할당되어 있다는 것을 뜻합니다.

docker: Error response from daemon: driver failed programming external connectivity on endpoint unruffled_hermann (677ec9c7028b3e4eea712352be9c9efc2893ceea5908729098563d09a14565f3): Bind for 0.0.0.0:9300 failed: port is already allocated.

해결 :
docker ps  명령어로 실행중인 docker를 확인하고 container id를 복사
docker stop [CONTAINER ID] 명령어로 docker를 멈춘뒤, 다시 docker를 run

http://localhost:9200/

cmd에서 { curl -XGET http://localhost:9200/_cluster/health?pretty } 명령어로도 확인가능

 

6시간 만에...성공 정말 이 방법 저 방법 관련 영상 보면서 무작정 따라해봤던 것 같다.
결국에는 제일 간단한 글이 제일 빨리 끝나더라 ^^