리그캣의 개발놀이터

ELK Stack on Docker (2) - elasticsearch 실행 본문

인프라/Docker

ELK Stack on Docker (2) - elasticsearch 실행

리그캣 2019. 6. 13. 17:18

앞의 내용 참고

https://league-cat.tistory.com/350

 

elasticserach container를 띄어준다.(볼륨연동은 우선 하지 않겠다.)

$docker run -d --name elasticsearch -it -p 9200:9200 -p 9300:9300 elasticsearch:7.0.0

 

아래의 명령어로 docker가 제대로 작동되었는지 확인해본다.

$docker ps

만약 없다면

$docker ps -a

에나온 docker rm을 이용하여 삭제 또는 아래의 명령어로 삭제해준후 재실행 해주어야 한다.

$docker container prune

 

설치한 elasticsearch 가 잘 작동하는지 확인

$curl -XGET "{HostIP}:9200"

 

나는 여기서 잘작동하지 않았다. 해당 .docker를 보니 죽어있엇고 아래의 명령어로 log를 확인해보았다

$docker logs elasticsearch

 

그랬더니 해당 명령어가 나왔다.

[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

보니 memory가 적으니 memory를 늘려달라는 이야기 같구.ㄴ...

 

먼저 아래의 명령어를 통해 사용하지 않는 docker container를 지워준다

$docker container prune

후,, y

 

아래의 내용을 참고해보았다. 

https://stackoverflow.com/questions/41192680/update-max-map-count-for-elasticsearch-docker-container-mac-host

 

Update max_map_count for ElasticSearch docker container Mac host

I'm using this container to start elasticsearch in docker. In accordance with the manual I have to update max_map_count to start the container sudo sysctl -w vm.max_map_count=262144 but.. I can

stackoverflow.com

먼가 linux에서 다음명령어를 실행시켜 vm이 참고할만한 count를 늘려주는것같은데 

$sysctl -w vm.max_map_count=262144

막상 container에 적용하려니 hostos에 적용해봣자 컨테이너는 지장을 안받는것같다.

 

dockerfilie을 작성해야하나 ...ㅠㅠ 

 

그래서 그냥 elasticsearch 홈페이지에서 제공해주는 이미지를 사용하기로 결정!!

https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run

 

Install Elasticsearch with Docker | Elasticsearch Reference [7.1] | Elastic

The container runs Elasticsearch as user elasticsearch using uid:gid 1000:1000. Bind mounted host directories and files, such as custom_elasticsearch.yml above, need to be accessible by this user. For the data and log dirs, such as /usr/share/elasticsearch

www.elastic.co

위의 사이트에서 보면 

다시 docker image를 다운받아준다. 기존의 이미지는 docker rm 명령어로 삭제가능하다

 

$docker pull docker.elastic.co/elasticsearch/elasticsearch:7.1.1

 

elasticsearch를 백단에서 실행시켜주고 상호작용가능하게 -it 옵션을 넣어준다.

 

$docker run -d -it -p 9200:9200 -p 9300:9300 --name elasticsearch -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.1.1

 

다시 elasticsearch가 제대로 동작하는지 확인하기 위해서 아래의 명령어를 입력해보자.

$curl -XGET "{HostIP}:9200"

누가 접속할까봐 ip는 가렷다 ㅎㅎㅎ 아무튼 위에처럼 검색이 되면 elasticsearch는 잘작동하는것이다

$docker ps 를 입력해서 ealsticsearch container가 작동중인지도 확인이 가능하다.

 

Comments