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.ymlは以下の内容を書き込み、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
    
    ES_JAVA_OPTSパラメータはES起動JVMのパラメータを指定していますが、デフォルトは2 Gのようですので、ローカルテストは小さくすればいいです.次にポートを正常にマッピングし、パスをマッピング
  • 起動成功確認
    #  
    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-1nodeを指す.nameの構成値は、記入を間違えてもエラーが発生します.
    bootstrap.system_call_filter: false
    cluster.initial_master_nodes: ["es-single-node-1"]
    

  • まとめ


    本文はdockerがES単機版を構築した内容をまとめた.