使用Docker搭建Elasticsearch 6.6.1集群
一 、安装Docker
docker的安装在docker官网有详细的介绍,基本上按照步骤来都很容易成功,我安装过很多次都没有失败过
官网链接: https://docs.docker.com/install/linux/docker-ce/centos/
二 、下载Elasticsearch 6.6.1版本Docker镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.6.1
三 、通过Docker运行Elasticsearch
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.6.1
这样,就十分方便的将elasticsearch服务运行起来了,在下载Elasticsearch镜像时稍微需要一些时间。
四 、通过Docker运行参数更好的部署Elasticsearch
上面我们仅仅是通过简单的docker命令使elasticsearch服务跑了起来,但是当我们关闭docker容器时,容器中的数据不会被持久化保存到镜像或者本地,当我们下次再次启动时,就会发现这个问题。
那么下面告诉大家几条实用的docker命令参数,让我们的Elasticsearch服务变得更加完善:
通过-d 参数,我们可以使elasticsearch服务在后台运行
通过-p 参数,我们可以指定对外的端口映射
通过-v 参数,我们可以将物理主机上的文件系统挂载到我们的docker容器指定目录上
docker run \
-p 9200:9200 -p 9300:9300 \
-v /data/elsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /data/elsearch/data:/var/lib/elasticsearch \
-v /data/elsearch/logs:/var/log/elasticsearch \
-d docker.elastic.co/elasticsearch/elasticsearch:6.6.1
由此,通过以上这条命令,我们可以很好的让我们的elasticsearch服务跑起来。
五、集群
使用docker进行分布式集群部署elasticsearch的过程一般的elasticsearch服务部署类似,只要配置文件正确,没有特别需要注意的地方。这里可以参照我之前的文章。
docker的单机多实例集群部署需要使用到docker-compose组件,docker-compose的安装请参照:
安装完成后,创建工作文件夹,创建docker-compose.yml文件,添加一下配置:
version: '2.2'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.6.1
container_name: elasticsearch
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- esnet
elasticsearch2:
image: docker.elastic.co/elasticsearch/elasticsearch:6.6.1
container_name: elasticsearch2
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "discovery.zen.ping.unicast.hosts=elasticsearch"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata2:/usr/share/elasticsearch/data
networks:
- esnet
volumes:
esdata1:
driver: local
esdata2:
driver: local
networks:
esnet:
开启服务:
docker-compose up
查看集群状态:
curl http://127.0.0.1:9200/_cat/health
1472225929 15:38:49 docker-cluster green 2 2 4 2 0 0 0 0 - 100.0%
六、参考资料
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html