前言:

建议服务器/虚拟机至少2G内存 本文使用的 elasticsearch 版本为 6.5.4


下载

docker pull elasticsearch:6.5.4

运行前配置

elasticsearch 启动对内存大小有要求

# 切换到root用户,编辑文件
vi /etc/sysctl.conf
# 添加下面配置
vm.max_map_count=655360
# 编辑完,使命令生效
sysctl -p

# 编辑文件
vi /etc/security/limits.conf
# 修改并加入下面配置
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

运行

elasticsearch 从 5.0 开始默认指定 jvm 内存为 2g,如果内存不够的话,需要修改参数,否则导致启动失败。

  • -e ES_JAVA_OPTS="-Xms512m -Xmx512m":设置初始内存和最大内存
docker run --name elasticsearch \
-p 9200:9200 \
-p 9300:9300 \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-d elasticsearch:6.5.4

这时,可以使用命令查看容器日志,看看 elasticsearch 是否启动成功

docker logs elasticsearch

访问

访问 http://ip:9200,浏览器返回类似如下信息,证明安装成功

{
  "name" : "FeGnMXH",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "cBDUcMaUQkuaAmdiRbfGmQ",
  "version" : {
    "number" : "5.6.12",
    "build_hash" : "cfe3d9f",
    "build_date" : "2018-09-10T20:12:43.732Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}

配置跨域

进入容器当中修改相应的配置信息

docker exec -it elasticsearch bash

修改配置文件 /usr/share/elasticsearch/config/elasticsearch.yml,加入跨域配置。

http.cors.enabled: true
http.cors.allow-origin: "*"

注: 本文最后有完整参考配置

修改之后,需要重启容器

docker restart elasticsearch

安装并运行 ElasticSearch-Head

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

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

访问 http://ip:9100 管理界面如下

es-admin

OK!,那么,到这里就完成了用 docker 提供 Elasticsearch 服务。

参考配置

# 集群名称
cluster.name: "elasticsearch"
# 绑定IP
network.host: 0.0.0.0

# 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
# 跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"

results matching ""

    No results matching ""