docker安装ElastichSearch以及界面工具

109 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

通过mysql简述结构层对比理解:

mysql数据库数据表单条记录字段列
elasticsearch索引类型文档属性

docker下载镜像:

存储和检索数据

docker pull elasticsearch:版本号

可视化检索数据

docker pull kibana:版本号

创建实例

#建立目录 映射配置文件

mkdir -p /mydata/elasticsearch/config

#建立目录 映射数据

mkdir -p /mydata/elasticsearch/data

#建立目录 映射插件目录

mkdir -p /mydata/elasticsearch/plugins

#配置文件: 注意:host:空格IP

echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml

chmod -R 777 /mydata/elasticsearch/ 保证权限

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2

解释:

docker run --name 运行容器名字

-p 9200:9200 暴露http请求 REST API的端口

-p 9300:9300
在分布式集群中节点之间通讯端口

-e "discovery.type=single-node"
以单节点运行

-e ES_JAVA_OPTS="-Xms64m -Xmx512m"
不指定内存大小默认占用全部内存

-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
配置文件挂载

-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data
data目录挂载

-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins
插件目录挂载

-d elasticsearch:7.4.2 以具体某个镜像运行

Kibana
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://宿主机IP:9200 -p 5601:5601 \
-d kibana:7.4.2

注意这里为什么是宿主机IP? docker 容器之间是相互隔离的。kibana容器的服务展示建立在于elasticSearch服务9200通讯的基础之上,但是两个服务再不做任何配置的情况下是相互隔离的。 所以这里不要写localhost(127.0.0.1),这是在告诉kibana 的服务调用自己服务器(容器)的elasticsearch,它自身没这个服务,肯定调取不到。然后也不要直接调用elasticsearch的ip,它们的相互隔离,是调取不到的。所以这里写宿主机ip

配置完毕之后, 我们访问: 宿主机:9200

{
  "name": "6a850788e223",
  "cluster_name": "elasticsearch",
  "cluster_uuid": "Mt5uM-vSS9qvETIDnKdHMQ",
  "version": {
    "number": "7.4.2",
    "build_flavor": "default",
    "build_type": "docker",
    "build_hash": "2f90bbf7b93631e52bafb59b3b049cb44ec25e96",
    "build_date": "2019-10-28T20:40:44.881551Z",
    "build_snapshot": false,
    "lucene_version": "8.2.0",
    "minimum_wire_compatibility_version": "6.8.0",
    "minimum_index_compatibility_version": "6.0.0-beta1"
  },
  "tagline": "You Know, for Search"
}

elasticsearch 服务可以了!

宿主机:5601/app/canvas#/ 可到了炫酷的界面说明kibana OK了。

如果哪个容器没起来,你可以

docker logs 容器名字

查看报错信息分析具体问题即可