Docker安装Elasticsearch

ElasticSearch-7.8.0安装

CentOS7安装 ElasticSearch-7.8.0

拉去镜像
1
docker pull elasticsearch:7.8.0
第一次启动容器,如果启动不成功请注意检查文件夹是否有可写权限
1
docker run --name elasticsearch-7.8.0 -p 9200:9200 -e "discovery.type=single-node" -v /docker/elasticsearch-7.8.0/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /docker/elasticsearch-7.8.0/config/jvm.options:/usr/share/elasticsearch/config/jvm.options -v /docker/elasticsearch-7.8.0/data/:/usr/share/elasticsearch/data/ -v /docker/elasticsearch-7.8.0/plugins/:/usr/share/elasticsearch/plugins/ -v /docker/elasticsearch-7.8.0/logs/:/usr/share/elasticsearch/logs/ -d elasticsearch:7.8.0
将上述目录拷贝到宿主机
1
2
3
4
5
docker cp 54c:/usr/share/elasticsearch/bin/ /docker/elasticsearch-7.8.0/
docker cp 54c:/usr/share/elasticsearch/config/ /docker/elasticsearch-7.8.0/
docker cp 54c:/usr/share/elasticsearch/data/ /docker/elasticsearch-7.8.0/
docker cp 54c:/usr/share/elasticsearch/logs/ /docker/elasticsearch-7.8.0/
docker cp 54c:/usr/share/elasticsearch/plugins/ /docker/elasticsearch-7.8.0/
在宿主机创建文件夹,后面好放分词器文件这些的
1
mkdir /docker/elasticsearch-7.8.0/elasticsearch-analysis/
停止容器
1
docker stop 54c
删除容器
1
docker rm 54c
再次重新创建ES容器
1
2
3
docker run --name elasticsearch-7.8.0 -p 9200:9200 -e "discovery.type=single-node" -v /docker/elasticsearch-7.8.0/bin/:/usr/share/elasticsearch/bin/ -v /docker/elasticsearch-7.8.0/config/:/usr/share/elasticsearch/config/ -v /docker/elasticsearch-7.8.0/data/:/usr/share/elasticsearch/data/ -v /docker/elasticsearch-7.8.0/elasticsearch-analysis/:/usr/share/elasticsearch/elasticsearch-analysis/ -v /docker/elasticsearch-7.8.0/plugins/:/usr/share/elasticsearch/plugins/ -v /docker/elasticsearch-7.8.0/logs/:/usr/share/elasticsearch/logs/ -d elasticsearch:7.8.0

docker run --name elasticsearch-7.6.2 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v E:/Docker/elasticsearch-7.6.2/bin/:/usr/share/elasticsearch/bin/ -v E:/Docker/elasticsearch-7.6.2/config/:/usr/share/elasticsearch/config/ -v E:/Docker/elasticsearch-7.6.2/data/:/usr/share/elasticsearch/data/ -v E:/Docker/elasticsearch-7.6.2/analysis/:/usr/share/elasticsearch/analysis/ -v E:/Docker/elasticsearch-7.6.2/plugins/:/usr/share/elasticsearch/plugins/ -v E:/Docker/elasticsearch-7.6.2/logs/:/usr/share/elasticsearch/logs/ -d elasticsearch:7.6.2

Windows安装 ElasticSearch-7.8.0

  • 除了映射路径不同,其他都和CentOS7一样,例如
    1
    docker run --name elasticsearch-7.8.0 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v E:/Docker/elasticsearch-7.8.0/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v E:/Docker/elasticsearch-7.8.0/data/:/usr/share/elasticsearch/data/ -v E:/Docker/elasticsearch-7.8.0/plugins/:/usr/share/elasticsearch/plugins/ -v E:/Docker/elasticsearch-7.8.0/logs/:/usr/share/elasticsearch/logs/ --restart always -d elasticsearch:7.8.0

分词器安装

  • 安装ik分词器

    安装ik分词器
    1
    2
    3
    docker exec -it elasticsearch-7.8.0 bash
    cd /usr/share/elasticsearch/plugins
    elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.8.0/elasticsearch-analysis-ik-7.8.0.zip
  • 安装hanlp分词器

    安装hanlp分词器
    1
    ./bin/elasticsearch-plugin install https://github.com/KennFalcon/elasticsearch-analysis-hanlp/releases/download/v7.8.0/elasticsearch-analysis-hanlp-7.8.0.zip
  • 这里要要先根据链接将文件下载下来,放到一个指定的文件夹,例如这里放【D:/plugins/elasticsearch-analysis-hanlp-7.8.0.zip】

    本地安装hanlp分词器
    1
    ./bin/elasticsearch-plugin install file:///D:/plugins/elasticsearch-analysis-hanlp-7.8.0.zip
  • 因为ICU是ES同一家公司的亲兄弟,所以可以直接这么安装,不用考虑版本、地址等问题

    1
    ./bin/elasticsearch-plugin install analysis-icu
  • 安装简繁体转化分词器

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-stconvert/releases/download/v7.8.0/elasticsearch-analysis-stconvert-7.8.0.zip

    PUT books
    {
    "settings": {
    "index": {
    "analysis.analyzer.default.type": "ik_max_word"
    },
    "analysis": {
    "char_filter": {
    "tsconvert": {
    "type": "stconvert",
    "convert_type": "t2s"
    }
    }
    }
    }
    }
  • 安装拼音分词器

    1
    ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v7.8.0/elasticsearch-analysis-pinyin-7.8.0.zip

ES配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 修改/data/elasticsearch-7.8.0/elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true

# 切换到docker中的elasticsearch安转目录中的bin目录
elasticsearch-setup-passwords interactive

# 此处如果报错如下,删除【.security-7】索引即可,然后重试
# Failed to authenticate user 'elastic' against http://172.17.0.5:9200/_security/_authenticate?pretty
# Possible causes include:
# * The password for the 'elastic' user has already been changed on this cluster
# * Your elasticsearch node is running against a different keystore
# This tool used the keystore at /usr/share/elasticsearch/config/elasticsearch.keystore

Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [kibana]:
Reenter password for [kibana]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [elastic]

查看插件列表

1
./bin/elasticsearch-plugin list

ElasticSearch-8.4.0安装

CentOS7安装 ElasticSearch-8.4.0

拉去镜像
1
docker pull elasticsearch:8.4.0
第一次启动容器,如果启动不成功请注意检查文件夹是否有可写权限
1
docker run --name elasticsearch-8.4.0 -p 9400:9200 -e "discovery.type=single-node" -d elasticsearch:8.4.0
将上述目录拷贝到宿主机
1
2
3
4
5
docker cp 54c:/usr/share/elasticsearch/bin/ E:/Docker/elasticsearch-8.4.0
docker cp 54c:/usr/share/elasticsearch/config/ E:/Docker/elasticsearch-8.4.0
docker cp 54c:/usr/share/elasticsearch/data/ E:/Docker/elasticsearch-8.4.0
docker cp 54c:/usr/share/elasticsearch/logs/ E:/Docker/elasticsearch-8.4.0
docker cp 54c:/usr/share/elasticsearch/plugins/ E:/Docker/elasticsearch-8.4.0
在宿主机创建文件夹,后面好放分词器文件这些的
1
E:/Docker/elasticsearch-8.4.0/analysis/
停止容器
1
docker stop 54c
删除容器
1
docker rm 54c
再次重新创建ES容器
1
2
3
4
docker run --name elasticsearch-8.4.0 -p 9400:9200 -p 9500:9300 -e "discovery.type=single-node" -v E:/Docker/elasticsearch-8.4.0/bin/:/usr/share/elasticsearch/bin/ -v E:/Docker/elasticsearch-8.4.0/config/:/usr/share/elasticsearch/config/ -v E:/Docker/elasticsearch-8.4.0/data/:/usr/share/elasticsearch/data/ -v E:/Docker/elasticsearch-8.4.0/analysis/:/usr/share/elasticsearch/analysis/ -v E:/Docker/elasticsearch-8.4.0/plugins/:/usr/share/elasticsearch/plugins/ -v E:/Docker/elasticsearch-8.4.0/logs/:/usr/share/elasticsearch/logs/ -d elasticsearch:8.4.0


docker run --name elasticsearch-7.6.2 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v E:/Docker/elasticsearch-7.6.2/bin/:/usr/share/elasticsearch/bin/ -v E:/Docker/elasticsearch-7.6.2/config/:/usr/share/elasticsearch/config/ -v E:/Docker/elasticsearch-7.6.2/data/:/usr/share/elasticsearch/data/ -v E:/Docker/elasticsearch-7.6.2/analysis/:/usr/share/elasticsearch/analysis/ -v E:/Docker/elasticsearch-7.6.2/plugins/:/usr/share/elasticsearch/plugins/ -v E:/Docker/elasticsearch-7.6.2/logs/:/usr/share/elasticsearch/logs/ -d elasticsearch:7.6.2

ES配置

  • 修改/data/elasticsearch-7.8.0/elasticsearch.yml
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    cluster.name: "docker-cluster"
    network.host: 0.0.0.0
    transport.host: 0.0.0.0
    discovery.seed_hosts: ["0.0.0.0", "[::1]"]
    xpack.security.enabled: true
    xpack.license.self_generated.type: basic

    xpack.security.enrollment.enabled: true

    xpack.security.http.ssl:
    enabled: false
    keystore.path: certs/http.p12

    xpack.security.transport.ssl:
    enabled: true
    verification_mode: certificate
    keystore.path: certs/transport.p12
    truststore.path: certs/transport.p12

  • 切换到docker中的elasticsearch安转目录中的bin目录
    1
    elasticsearch-setup-passwords interactive
  • 设置密码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    # 此处如果报错如下,删除【.security-7】索引即可,然后重试
    # Failed to authenticate user 'elastic' against http://172.17.0.5:9200/_security/_authenticate?pretty
    # Possible causes include:
    # * The password for the 'elastic' user has already been changed on this cluster
    # * Your elasticsearch node is running against a different keystore
    # This tool used the keystore at /usr/share/elasticsearch/config/elasticsearch.keystore

    Enter password for [elastic]:
    Reenter password for [elastic]:
    Enter password for [kibana]:
    Reenter password for [kibana]:
    Enter password for [logstash_system]:
    Reenter password for [logstash_system]:
    Enter password for [beats_system]:
    Reenter password for [beats_system]:
    Changed password for user [kibana]
    Changed password for user [logstash_system]
    Changed password for user [beats_system]
    Changed password for user [elastic]

评论