【Linux】【elasticsearch】docker部署elasticsearch及elasticsearch-head


前言

  Elasticsearch是一個基於Apache Lucene(TM)的開源搜索引擎。無論在開源還是專有領域,Lucene可以被認為是迄今為止最先進、性能最好的、功能最全的搜索引擎庫。但是,Lucene只是一個庫。想要使用它,你必須使用Java來作為開發語言並將其直接集成到你的應用中,更糟糕的是,Lucene非常復雜,你需要深入了解檢索的相關知識來理解它是如何工作的。Elasticsearch也使用Java開發並使用Lucene作為其核心來實現所有索引和搜索的功能,但是它的目的是通過簡單的RESTful API來隱藏Lucene的復雜性,從而讓全文搜索變得簡單。

  不過,Elasticsearch不僅僅是Lucene和全文搜索,我們還能這樣去描述它:

  -分布式的實時文件存儲,每個字段都被索引並可被搜索
  -分布式的實時分析搜索引擎
  -可以擴展到上百台服務器,處理PB級結構化或非結構化數據

  而且,所有的這些功能被集成到一個服務里面,你的應用可以通過簡單的RESTful API、各種語言的客戶端甚至命令行與之交互。

  ElasticSearch-head 是一個web端的ElasticSearch管理工具。

安裝

一、docker安裝Elasticsearch

1.docker拉取Elasticsearch鏡像

https://www.docker.elastic.co/ 選擇適用的版本。這里選擇6.3.2

 

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2

 如果docker pull error,請添加國內鏡像加速源,參考:https://www.cnblogs.com/jxd283465/p/11571943.html

 1 # 拉取鏡像
 2 [root@localhost ~]# docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2
 3 6.3.2: Pulling from elasticsearch/elasticsearch
 4 7dc0dca2b151: Pull complete 
 5 72d60ff53590: Pull complete 
 6 ca55c9f7cc1f: Pull complete 
 7 822d6592a660: Pull complete 
 8 22eceb1ece84: Pull complete 
 9 30e73cf19e42: Pull complete 
10 f05e800ca884: Pull complete 
11 3e6ee2f75301: Pull complete 
12 Digest: sha256:8f06aecf7227dbc67ee62d8d05db680f8a29d0296ecd74c60d21f1fe665e04b0
13 Status: Downloaded newer image for docker.elastic.co/elasticsearch/elasticsearch:6.3.2
14 # 查看鏡像
15 [root@localhost ~]# docker images
16 REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE
17 docker.elastic.co/elasticsearch/elasticsearch   6.3.2               96dd1575de0f        14 months ago       826MB

2.運行容器

docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.3.2

-p 9200 9300:映射虛擬機端口到宿主機端口

  9200 http協議,為elasticsearch默認端口,用於外部通訊。

  9300 tcp協議,用於集群之間通信。.

-e 設置elasticsearch為單節點啟動

1 # 啟動容器
2 [root@localhost ~]# docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.3.2
3 af895f4ddc62a981c72217f547a2a67fea9695b5b113c4317a1965cc76153bd4
4 # 查看容器
5 [root@localhost ~]# docker ps
6 CONTAINER ID        IMAGE                                                 COMMAND                  CREATED             STATUS              PORTS                                            NAMES
7 af895f4ddc62        docker.elastic.co/elasticsearch/elasticsearch:6.3.2   "/usr/local/bin/dock…"   4 seconds ago       Up 3 seconds        0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   es

3.設置跨域

 1 # 進入es容器,es為容器的name,bash為命令行
 2 [root@localhost ~]# docker exec -it es bash  3 # 查看文件
 4 [root@af895f4ddc62 elasticsearch]# ls  5 LICENSE.txt  README.textile  config  lib   modules
 6 NOTICE.txt   bin             data    logs  plugins
 7 # 進入elasticsearch的配置文件夾
 8 [root@af895f4ddc62 elasticsearch]# cd config  9 [root@af895f4ddc62 config]# ls
10 elasticsearch.keystore  ingest-geoip  log4j2.properties  roles.yml  users_roles
11 elasticsearch.yml       jvm.options   role_mapping.yml   users
12 # 修改elasticsearch的配置文件
13 [root@af895f4ddc62 config]# vi elasticsearch.yml 
14 # 增加跨域配置
15     http.cors.enabled: true
16     http.cors.allow-origin: "*"
17 # :wq保存
18 # exit退出容器
19 [root@af895f4ddc62 config]# exit 20 exit
21 # 重啟es容器
22 [root@localhost ~]# docker restart es 23 es
# curl "http://localhost:9200"

{
  "name" : "rSLhlFi",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "QTLXwiz_Sx-udJAofc2RIQ",
  "version" : {
    "number" : "6.3.2",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "053779d",
    "build_date" : "2018-07-20T05:20:23.451332Z",
    "build_snapshot" : false,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

二、docker安裝Elasticsearch-head

1.docker search elasticsearch-head搜索鏡像

  • docker search elasticsearch-head

2.拉取 mobz/elasticsearch-head 鏡像

  • docker pull mobz/elasticsearch-head:5

3.運行容器

  • docker run -d --name es_admin -p 9000:9100 mobz/elasticsearch-head:5

由於我宿主機9100端口被占用,所以這里將容器的9100端口映射到宿主機的9000端口

4.訪問elasticsearch-head

瀏覽器打開http://192.168.8.10:9000/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM