Docker(八):安装Elasticsearch

一. 拉取elasticsearch官方镜像

docker search elasticsearch 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二. 创建elasticsearch的挂载目录夹用于存放docker容器内的数据和配置(非必要步骤)
在这里插入图片描述

二. 运行,创建容器

#  创建elasticsearch的挂载目录夹用于存放docker容器内的数据和配置(非必要步骤)
mkdir -p /data/elasticsearch/{logs,data,plugins}

#注意:9300是tcp通讯端口,集群间和TCPClient都执行该端口,9200是http协议的RESTful接口 
docker run -it --name esd -p 9200:9200 -p 9300:9300  -e "discovery.type=single-node" \
-v /data/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /data/elasticsearch/data:/usr/share/elasticsearch/data \
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
docker.elastic.co/elasticsearch/elasticsearch:7.2.0

在这里插入图片描述
或者以 -d 后台方式启动运行容器:

# \ 表示连接符
docker run --name esd -d -p 9200:9200 -p 9300:9300  -e "discovery.type=single-node" \
docker.elastic.co/elasticsearch/elasticsearch:7.2.0

然后 exec 进入到容器:
在这里插入图片描述
配置可跨域访问:

 vi /usr/share/elasticsearch/config/elasticsearch.yml

在这里插入图片描述
重启docker容器实例:

docker restart 容器ID或容器名 :不管容器是否启动,直接重启容器 
1. 首先 docker ps 查看正在运行的容器信息,显示2分钟前启动运行 
2. docker restart 59ec 重启容器 
3. 再次 docker ps 查看容器信息 显示4秒前启动运行  

在这里插入图片描述

安装IK中文分词插件:

$ cd /usr/share/elasticsearch

$ ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.2.0/elasticsearch-analysis-ik-7.2.0.zip

如果发生java.net.UnknownHostException异常,这是Docker容器内部无法解析域名,参考如下链接解决:
https://blog.csdn.net/u012834750/article/details/79965569
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三. 通过浏览器访问ElasticSearch服务器,看到如下返回的json信息,代表服务启动成功
在这里插入图片描述
四. 安装elasticsearch-head
    该插件可以完成图形化界面的效果,方便索引数据的查看和监控。

docker pull docker.io/mobz/elasticsearch-head:5
docker run -itd --name eshead -p 9100:9100 mobz/elasticsearch-head:5

在这里插入图片描述
进入容器内修改elasticsearch-head 检测的elasticsearch 本地ip地址为外网ip:
在这里插入图片描述
在_site 目录下修改app.js文件 这时我们无法修改 因为容器内vim编辑器未安装,所以先安装vim。

 #安装命令
 apt-get install -y vim
 # 如果提示如下信息:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package vim
则先执行以下命令:
apt-get update 

# 如果提示 apt-get command not found,则执行如下命令:
yum install -y vim*
$ vim app.js

搜索 9200端口 使用 :/9200 回车
将http://localhost:9200 替换为公网ip 比如: http://192.168.133.128:9200/
                        this._super();
                        this.prefs = services.Preferences.instance();
                        this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.133.128:9200/";
                        if( this.base_uri.charAt( this.base_uri.length - 1 ) !== "/" ) {
                                // XHR request fails if the URL is not ending with a "/"
                                this.base_uri += "/";
                        }

查看浏览器 外网访问
在这里插入图片描述

五. 分布式安装—docker简易搭建ElasticSearch集群
    上面相当于单实例安装,如果想要单台机器模拟集群,可以按照上面步骤再多起几个实例。
下面以单台机器模拟 一主两从的集群。
主节点配置:
在这里插入图片描述
接着再启动两个从节点:

docker run -d --name slave1 -p 9201:9200 -p 9301:9300 docker.elastic.co/elasticsearch/elasticsearch:7.2.0

docker run -d --name slave2 -p 9202:9200 -p 9302:9300 docker.elastic.co/elasticsearch/elasticsearch:7.2.0

如果遇到容器启动后没多久自动退出,则以如下命令运行:

docker run -d --name slave1 -p 9201:9200 -p 9301:9300 docker.elastic.co/elasticsearch/elasticsearch:7.2.0 /bin/sh -c "while true; do echo hello world; sleep 1; done"

docker run -d --name slave2 -p 9202:9200 -p 9302:9300 docker.elastic.co/elasticsearch/elasticsearch:7.2.0 /bin/sh -c "while true; do echo hello world; sleep 1; done"

从节点1配置:

#  vim config/elasticsearch.yml 
cluster.name: "docker-cluster"
node.name: slave1 # 从节点2为 slave2
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping.unicast.hosts: ["127.0.0.1","172.17.0.1","172.17.0.5","172.17.0.6"]

ctrl+p+q : 回到宿主机
配置好后,重启所有的es实例容器。

补充:如何查看docker容器的ip?
    因为docker容器是彼此隔离的,所以容器内的ip是不一样的。
容器启动后 docker exec -it esd bash进入容器 esd为这个容器的name
在这里插入图片描述

官网参考地址:
https://www.elastic.co/guide/en/elasticsearch/reference/7.2/docker.html
https://www.jianshu.com/p/bd9e56ef5beb
https://www.jianshu.com/p/991c74a1bbf7
https://segmentfault.com/a/1190000015568518?utm_source=tag-newest
https://blog.51cto.com/zero01/2285604
https://blog.csdn.net/belonghuang157405/article/details/83301937

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值