Docker:是一个开源的容器引擎,它有助于更快地交付应用。 Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。
Elasticsearch:
Elasticsearch (ES)是一个基于Lucene构建的开源、分布式、RESTful 接口全文搜索引擎。Elasticsearch 还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级的数据。它可以在很短的时间内存储、搜索和分析大量的数据。它通常作为具有复杂搜索场景情况下的核心发动机。
docker常用命令:
开始搭建集群:
Docker 要求 CentOS 系统的内核版本在 3.10以上。
三台虚拟机:
安装一台克隆2台
安装es的内存一定要设置大一点,复制多台虚拟机完全看你电脑性能,如果8g的运行内存就不要尝试了,是很卡的。上个我的cpu图。
docker pull elasticsearch:6.4.3
命令解释
-p 9200:9200端口映射:前表示主机部分,:后表示容器部分。
--name elasticsearch指定该容器名称,查看和进行操作都比较方便。
-v 挂载目录,规则与端口映射相同。
-d elasticsearch表示后台启动elasticsearch
plugins表示插件目录,logs表示日志,data表示节点数据
查看最新5分钟日志
看到这里我们es启动成功了,一定要看日志,es虽然启动了,但是状态没有成功,还是失败。启动的时候一定要把es的插件放在plugins里面。以免下次重新停止再重启。
其他两台虚拟机一样只需要修改/elasticsearch.yml配置文件
同样启动2台.....
docker exec -it elasticsearch /bin/bash
/usr/share/elasticsearch 表示root目录
容器的插件:
可以用命令实现,把虚拟机的文件复制到容器内部
三台es启动成功了,那我们看看集群是否成功了?
我这里成功了
节点信息不同步怎么处理?
删除es目录的data节点,重新启动,三台一定都要删除,重启容器搞定节点信息不同步问题。
1,节点信息数据不同步,一定要删除data数据的nodes节点。
2,通过docker logs 查看日志
创作不易转载注明地址。