docker 단기 elasticsearch 구축

전언
만약에 개발 테스트를 위해서라면 로컬에서 단기 ES를 구축하는 것은 좋은 선택이다. 본고는 단기 버전의 ES를 어떻게 구축하고 테스트하는지를 총괄했다.
환경:
mac os 10.15.7
docker Docker version 20.10.2, build 2291f61
elasticsearch : 7.6.2
구축 단계
  • 다운로드 렌즈
    docker pull elasticsearch:7.6.2
    
    는 구체적인 버전을 반드시 지정해야 한다는 것을 주의해야 한다.
  • 기본 환경에서 숙박 호스트에서/opt/workspace/work/es/single/를 만들고 경로는 자신의 구체적인 상황에 따라 설정합니다.
    export ES_SINGLE=/opt/workspace/work/es/single
    # es          
    mkdir ${ES_SINGLE}/config/
    # es           
    mkdir ${ES_SINGLE}/data/
    vim ${ES_SINGLE}/config/es-single.yml 
    
    es-single.wq:
    cluster.name: elasticsearch-single
    node.name: es-single-node-1
    network.bind_host: 0.0.0.0
    #        
    network.publish_host: 127.0.0.1
    http.port: 9200
    transport.tcp.port: 9300
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    node.master: true
    node.data: true
    bootstrap.system_call_filter: false
    cluster.initial_master_nodes: ["es-single-node-1"]
    
  • 부팅
    docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 -v ${ES_SINGLE}/config/es-single.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v ${ES_SINGLE}/data:/usr/share/elasticsearch/data --name es-single elasticsearch:7.6.2
    
    ESJAVA_OPTS 매개 변수는 ES가 JVM을 시작하는 매개 변수를 지정합니다. 기본값은 2G인 것 같습니다. 따라서 로컬 테스트를 작게 하면 됩니다.그리고 정상 매핑 포트, 매핑 경로
  • 부팅 성공 확인
    #       
    docker logs -f es-single
    
    #   
    curl localhost:9200 
    {
           
      "name" : "es-single-node-1",
      "cluster_name" : "elasticsearch-single",
      "cluster_uuid" : "bfNp_65OQx6-MXFZ7_79NA",
      "version" : {
           
        "number" : "7.6.2",
        "build_flavor" : "default",
        "build_type" : "docker",
        "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
        "build_date" : "2020-03-26T06:34:37.794943Z",
        "build_snapshot" : false,
        "lucene_version" : "8.4.0",
        "minimum_wire_compatibility_version" : "6.8.0",
        "minimum_index_compatibility_version" : "6.0.0-beta1"
      },
      "tagline" : "You Know, for Search"
    }
    
  • 구축 과정의 이상
  • Caused by: java.nio.file.AccessDeniedException:/usr/share/elasticsearch/data/nodes는 겉으로는 용기 디렉터리의 권한이 부족하지만 실제로는 숙성 호스트의 권한이 부족하여 숙성 호스트에게 권한을 부여합니다.
    chmod -R 777 ${ES_SINGLE}
    
  • ERROR: [1] bootstrap checks failed yml 가입, 주의es-single-node-1는 node를 가리킨다.name의 설정 값입니다. 잘못 입력하면 오류가 발생합니다.
    bootstrap.system_call_filter: false
    cluster.initial_master_nodes: ["es-single-node-1"]
    

  • 총결산
    본고는 docker가 ES 단기판을 구축하는 내용을 총결하였다.

    좋은 웹페이지 즐겨찾기