ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker 공식 이미지 사용하기 : ElasticSearch
    Container 2016. 4. 13. 09:00
    반응형
    오픈 소스 검색엔진인 엘라스틱서치(elasticsearch) 역시 공식 docker 이미지를 가지고 있다. 아래 명령으로 간단하게 엘라스틱서치를 실행할 있다.
    docker run --rm -ti -p 9200:9200 elasticsearch:1.7
     
    엘라스틱서치는 REST API 통해서 명령을 실행한다. 간단한 curl 명령을 통해서 엘라스틱서치가 실행됐는지 아래처럼 확인할 있다.
    curl 192.168.123.103:9200
     
    {
      "status" : 200,
      "name" : "Scott Summers",
      "cluster_name" : "elasticsearch",
      "version" : {
        "number" : "1.7.3",
        "build_hash" : "05d4530971ef0ea46d0f4fa6ee64dbc8df659682",
        "build_timestamp" : "2015-10-15T09:14:17Z",
        "build_snapshot" : false,
        "lucene_version" : "4.10.4"
      },
      "tagline" : "You Know, for Search"
    }
     
    엘라스틱서치 1.7.3 실행된걸 있다. 엘라스틱서치 기본 이미지에는 별다른 관리도구가 설치되어 있지 않다. 엘라스틱서치를 관리하기위해 많이 사용되는 플러그인인 head 추가한 이미지를 만들어 보자.
     
    아래 처럼 Dockerfile 작성하고 이미지를 빌드하면 된다.
    FROM elasticsearch
     
    RUN /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head

     
    docker build --tag elasticsearch:head .
     
     
    새로 만든 이미지를 실행하면 head 플러그인이 있는걸 확인할 있다. 필요한 플러그인이 있이면 같은 요령으로 plugin install 통해서 추가해서 설치해 주면 된다.
    docker run --rm -ti -p 9200:9200 -p 9300:9300 elasticsearch:head

     
     
    엘라스틱서치는 여러대의 장비를 이용해서 클러스터를 구성해서 실행할 있다. Docker 이용해서 테스트용으로 하나의 호스트에서 여러개의 엘라스틱서치를 실행해서 엘라스틱서치 클러스터를 구성해 있다. 엘라스틱서치는 같은 네트워크 상에 있는 프로세스를 자동으로 찾아주기 때문에 포트만 다르게해서 docker 이미지를 실행하기만 하면 된다.
     
    docker run --rm -ti -p 9201:9200 -p 9301:9300 elasticsearch:head
    docker run --rm -ti -p 9202:9200 -p 9302:9300 elasticsearch:head
    docker run --rm -ti -p 9203:9200 -p 9303:9300 elasticsearch:head
     
    head 웹브라우저에서 확인해보면 노드가 3개가 떠있는걸 확인할 있다.

     
    엘라스틱 서치에 있는 데이터를 시각화해서 보여주는 키바나(kibana)라는 강력한 애플리케이션이 있다. 키바나 역시 docker 이용해서 간단하게 기존 엘라스틱서치에 붙여서 사용할 있다.
    docker run --rm -ti -p 5601:5601 -e ELASTICSEARCH_URL=http://192.168.123.103:9201  kibana:4.0
     

     
    반응형

    'Container' 카테고리의 다른 글

    Google Container Engine  (1) 2016.04.18
    Docker 컨테이너 모니터링  (0) 2016.04.15
    Docker 공식 이미지 사용하기 : 젠킨스  (0) 2016.04.11
    Docker 공식 이미지 사용하기 : Redis  (0) 2016.04.08
    Docker 볼륨 사용하기  (1) 2016.04.06

    댓글

Designed by Tistory.