Docker安装ElasticSearch

上一篇我们介绍了Docker的一些入门,这篇我们来实战安装下ElasticSearch。

一、Docker 部署 ElasticSearch

1、从仓库中查找所有ElasticSearch的镜像

[root@iZwz99dhxbd6xwly17tb3bZ app]# docker search elasticsearch
INDEX       NAME                                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/elasticsearch                         Elasticsearch is a powerful open source se...   3060      [OK]       
docker.io   docker.io/kibana                                Kibana gives shape to any kind of data — s...   1239      [OK]       
docker.io   docker.io/nshou/elasticsearch-kibana            Elasticsearch-6.3.1 Kibana-6.3.1                81                   [OK]
docker.io   docker.io/itzg/elasticsearch                    Provides an easily configurable Elasticsea...   66                   [OK]
docker.io   docker.io/mobz/elasticsearch-head               elasticsearch-head front-end and standalon...   34                   
docker.io   docker.io/kubernetes/fluentd-elasticsearch      An image that ingests Docker container log...   25                   
docker.io   docker.io/lmenezes/elasticsearch-kopf           elasticsearch kopf                              17                   [OK]
docker.io   docker.io/tutum/elasticsearch                   Elasticsearch image - listens in port 9200.     16                   [OK]
docker.io   docker.io/monsantoco/elasticsearch              ElasticSearch Docker image                      11                   [OK]
docker.io   docker.io/bitnami/elasticsearch                 Bitnami Docker Image for Elasticsearch          10                   [OK]
docker.io   docker.io/mesoscloud/elasticsearch              [UNMAINTAINED] Elasticsearch                    9                    [OK]
docker.io   docker.io/justwatch/elasticsearch_exporter      Elasticsearch stats exporter for Prometheus     7                    
docker.io   docker.io/taskrabbit/elasticsearch-dump         Import and export tools for elasticsearch       7                    [OK]
docker.io   docker.io/blacktop/elasticsearch                Alpine Linux based Elasticsearch Docker Image   5                    [OK]
docker.io   docker.io/centerforopenscience/elasticsearch    Elasticsearch                                   3                    [OK]
docker.io   docker.io/frodenas/elasticsearch                A Docker Image for Elasticsearch                3                    [OK]
docker.io   docker.io/barchart/elasticsearch-aws            Elasticsearch AWS node                          2                    
docker.io   docker.io/jetstack/elasticsearch-pet            An elasticsearch image for kubernetes PetSets   1                    [OK]
docker.io   docker.io/phenompeople/elasticsearch            Elasticsearch is a powerful open source se...   1                    [OK]
docker.io   docker.io/thingswise/elasticsearch              Elasticsearch + etcd2 peer discovery            1                    [OK]
docker.io   docker.io/18fgsa/elasticsearch                  Built from https://github.com/docker-libra...   0                    
docker.io   docker.io/backplane/elasticsearch-curator       Elasticsearch Curator (https://github.com/...   0                    
docker.io   docker.io/driveclutch/infra-elasticsearch-aws   Elasticsearch Docker for use in AWS             0                    [OK]
docker.io   docker.io/forkdelta/fluentd-elasticsearch       fluent/fluentd with fluent-plugin-elastics...   0                    [OK]
docker.io   docker.io/wreulicke/elasticsearch               elasticsearch                                   0                    [OK]

2、选择一个版本镜像进行拉取

[root@iZwz99dhxbd6xwly17tb3bZ ~]# docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2
Trying to pull repository docker.elastic.co/elasticsearch/elasticsearch ... 
6.3.2: Pulling from docker.elastic.co/elasticsearch/elasticsearch
7dc0dca2b151: Pull complete 
72d60ff53590: Pull complete 
ca55c9f7cc1f: Pull complete 
822d6592a660: Pull complete 
22eceb1ece84: Pull complete 
30e73cf19e42: Pull complete 
f05e800ca884: Pull complete 
3e6ee2f75301: Pull complete 
Digest: sha256:8f06aecf7227dbc67ee62d8d05db680f8a29d0296ecd74c60d21f1fe665e04b0
Status: Downloaded newer image for docker.elastic.co/elasticsearch/elasticsearch:6.3.2

3、 查看镜像

[root@iZwz99dhxbd6xwly17tb3bZ ~]# docker images
REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE
docker.io/elasticsearch                         latest              5acf0e8da90b        3 days ago          486 MB
docker.io/hello-world                           latest              4ab4c602aa5e        2 weeks ago         1.84 kB
docker.elastic.co/elasticsearch/elasticsearch   6.3.2               96dd1575de0f        2 months ago        826 MB


4、通过镜像,启动一个容器,并将9200和9300端口映射到本机(ElasticSearch的默认端口是9200,我们把宿主环境9200端口映射到Docker容器中的9200端口

[root@iZwz99dhxbd6xwly17tb3bZ ~]# docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.3.2
c11ef1beb4f3e82d74b8709f9462e83636551b6307cd816563a4a5539f17ac6b

5、 配置跨域,进入容器内部,修改elasticsearch.yml

[root@c11ef1beb4f3 elasticsearch]# ls
LICENSE.txt  NOTICE.txt  README.textile  bin  config  data  lib  logs  modules  plugins
[root@c11ef1beb4f3 elasticsearch]# cd config/
[root@c11ef1beb4f3 config]# ls
elasticsearch.keystore  ingest-geoip  log4j2.properties  roles.yml  users_roles
elasticsearch.yml       jvm.options   role_mapping.yml   users
[root@c11ef1beb4f3 config]# vi elasticsearch.yml

      新增跨域配置

cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"

# minimum_master_nodes need to be explicitly set when bound on a public IP
# set to 1 to allow single node clusters
# Details: https://github.com/elastic/elasticsearch/pull/17288
discovery.zen.minimum_master_nodes: 1

6、重启ElasticSearch容器

[root@iZwz99dhxbd6xwly17tb3bZ ~]# docker restart es
es

7、 浏览器访问ip:9200

二、Docker 部署 ElasticSearch-Head

ElasticSearch-Head是一个管理界面,可以查看ElasticSearch相关信息

1、拉取ElasticSearch-Head镜像

[root@iZwz99dhxbd6xwly17tb3bZ ~]# docker pull mobz/elasticsearch-head:5
Trying to pull repository docker.io/mobz/elasticsearch-head ... 
5: Pulling from docker.io/mobz/elasticsearch-head
75a822cd7888: Pull complete 
57de64c72267: Pull complete 
4306be1e8943: Pull complete 
871436ab7225: Pull complete 
0110c26a367a: Pull complete 
1f04fe713f1b: Pull complete 
723bac39028e: Pull complete 
7d8cb47f1c60: Pull complete 
7328dcf65c42: Pull complete 
b451f2ccfb9a: Pull complete 
304d5c28a4cf: Pull complete 
4cf804850db1: Pull complete 
Digest: sha256:55a3c82dd4ba776e304b09308411edd85de0dc9719f9d97a2f33baa320223f34
Status: Downloaded newer image for docker.io/mobz/elasticsearch-head:5

2、 运行ElasticSearch-Head容器

[root@iZwz99dhxbd6xwly17tb3bZ ~]# docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5
76b0903ac01bc642d4d3ad238134df7312473a44c5b9f603f97f6742a759e629

3、浏览器访问 ip:9100

三、Docker部署ik中文分词插件

1、进入es容器内部,/plugins下新建ik文件夹

[root@iZwz99dhxbd6xwly17tb3bZ ~]# docker exec -it es /bin/bash
[root@970f612c5cac elasticsearch]# ls
LICENSE.txt  NOTICE.txt  README.textile  bin  config  data  lib  logs  modules  plugins
[root@970f612c5cac elasticsearch]# cd plugins/
[root@970f612c5cac plugins]# mkdir ik
[root@970f612c5cac plugins]# ls
ik  ingest-geoip  ingest-user-agent

2、下载与es对应版本的ik压缩包,并解压

[root@970f612c5cac plugins]# cd ik 
[root@970f612c5cac ik]# wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.2/elasticsearch-analysis-ik-6.3.2.zip
[root@970f612c5cac ik]# unzip elasticsearch-analysis-ik-6.3.2.zip
[root@970f612c5cac ik]# ls
commons-codec-1.9.jar    elasticsearch-analysis-ik-6.3.2.jar  plugin-descriptor.properties
commons-logging-1.2.jar  httpclient-4.5.2.jar                 plugin-security.policy
config                   httpcore-4.4.4.jar

3、退出容器,重启es容器 

[root@970f612c5cac ik]# exit
exit
[root@iZwz99dhxbd6xwly17tb3bZ ~]# docker restart es

4、测试ik分词插件,postman请求以下参数

结果返回如下 ,说明安装成功

{
  "tokens": [
    {
      "token": "看到",
      "start_offset": 0,
      "end_offset": 2,
      "type": "CN_WORD",
      "position": 0
    },
    {
      "token": "这里是",
      "start_offset": 2,
      "end_offset": 5,
      "type": "CN_WORD",
      "position": 1
    },
    {
      "token": "这里",
      "start_offset": 2,
      "end_offset": 4,
      "type": "CN_WORD",
      "position": 2
    },
    {
      "token": "是不是",
      "start_offset": 4,
      "end_offset": 7,
      "type": "CN_WORD",
      "position": 3
    },
    {
      "token": "不是",
      "start_offset": 5,
      "end_offset": 7,
      "type": "CN_WORD",
      "position": 4
    },
    {
      "token": "感觉",
      "start_offset": 7,
      "end_offset": 9,
      "type": "CN_WORD",
      "position": 5
    },
    {
      "token": "很简单",
      "start_offset": 9,
      "end_offset": 12,
      "type": "CN_WORD",
      "position": 6
    },
    {
      "token": "简单",
      "start_offset": 10,
      "end_offset": 12,
      "type": "CN_WORD",
      "position": 7
    },
    {
      "token": "呢",
      "start_offset": 12,
      "end_offset": 13,
      "type": "CN_CHAR",
      "position": 8
    }
  ]
}

至此Docker安装 Elasticsearch已基本完成,从中我们可以清晰感受到Docker的强大之处!

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
好的,以下是使用Docker安装Elasticsearch的步骤: 1. 确保您已经安装DockerDocker Compose。如果您还没有安装,请按照官方文档进行安装。 2. 创建一个新的目录,例如`elasticsearch`,用于存储Elasticsearch配置和数据。 3. 在该目录中创建一个名为`docker-compose.yml`的文件,并将以下内容添加到该文件中: ``` version: '3' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.18.0 container_name: elasticsearch environment: - node.name=elasticsearch - discovery.type=single-node ulimits: memlock: soft: -1 hard: -1 volumes: - ./data:/usr/share/elasticsearch/data ports: - 9200:9200 - 9300:9300 ``` 此文件定义了一个名为`elasticsearch`的Docker服务。我们使用7.18.0版本的Elasticsearch镜像,将容器命名为`elasticsearch`,并将环境变量设置为`node.name`和`discovery.type`以使其成为单节点集群。我们还将内存锁定限制设置为无限制,并将Elasticsearch数据存储在我们创建的名为`data`的本地目录中。最后,我们将容器的端口映射到主机的9200和9300端口,以便我们可以通过HTTP和Transport协议访问Elasticsearch。 4. 在终端中导航到`elasticsearch`目录,并运行以下命令以启动Elasticsearch服务: ``` docker-compose up -d ``` 这将使用我们在`docker-compose.yml`文件中定义的配置启动一个名为`elasticsearch`的Docker容器。 5. 要验证Elasticsearch是否正在运行,请运行以下命令: ``` curl -X GET "localhost:9200" ``` 如果您看到Elasticsearch的版本信息,则表示它已成功安装并正在运行。 现在您已经成功地使用Docker安装Elasticsearch,可以开始在其上构建应用程序或进行数据分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

斑马工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值