1.1 拉取镜像

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

1.2 运行容器

ElasticSearch的默认端口是9200,我们把宿主环境9200端口映射到Docker容器中的9200端口,就可以访问到Docker容器中的ElasticSearch服务了,同时我们把这个容器命名为es。

docker run -d --name es -p 9200:9200 -p 9300:9300 -v /data/elasticsearch/data:/usr/share/elasticsearch/data -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" docker.elastic.co/elasticsearch/elasticsearch:6.8.0

1.3 配置跨域

1.3.1 进入容器

由于要进行配置,因此需要进入容器当中修改相应的配置信息。

docker exec -it es /bin/bash

1.3.2 进行配置

  • 显示文件
    ls
    结果如下:
    LICENSE.txt README.textile config lib modules
    NOTICE.txt bin data logs plugins

  • 进入配置文件夹
    cd config

  • 显示文件
    ls
    结果如下:
    elasticsearch.keystore ingest-geoip log4j2.properties roles.yml users_roles
    elasticsearch.yml jvm.options role_mapping.yml users

  • 修改配置文件
    vi elasticsearch.yml

  • 加入跨域配置
    http.cors.enabled: true
    http.cors.allow-origin: "*"

2.3 重启容器

由于修改了配置,因此需要重启ElasticSearch容器。

docker restart es

{

name: "RZjX-TR",

cluster_name: "docker-cluster",

cluster_uuid: "2zHF2S5tTkKhNHbUp44KaA",

version: {

   number: "6.8.0",
    
   build_flavor: "default",
    
   build_type: "docker",
    
   build_hash: "65b6179",
    
   build_date: "2019-05-15T20:06:13.172855Z",
    
   build_snapshot: false,
    
   lucene_version: "7.7.0",
    
   minimum_wire_compatibility_version: "5.6.0",
    
   minimum_index_compatibility_version: "5.0.0"
    
  },
  tagline: "You Know, for Search"
}

这时已经可以访问服务了

Docker 部署 ElasticSearch-Head

为什么要安装ElasticSearch-Head呢,原因是需要有一个管理界面进行查看ElasticSearch相关信息

2.1 拉取镜像

docker pull mobz/elasticsearch-head:5

2.2 运行容器

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

宝剑锋从磨砺出,梅花香自苦寒来.