为了保证环境的一致性,团队使用Dokcer镜像搭建开发环境。
本文展示搭建的全过程:
一,下载Docker镜像
docker pull elasticsearch:6.8.1
二,运行镜像
docker run -p 9200:9200 -p 9300:9300 -v C:/elasticsearch:/usr/share/elasticsearch/data -v C:/elasticsearch/log:/var/log/elasticsearch -e "discovery.type=single-node" elasticsearch:6.8.1
tips:
1. 如果是刚安装的docker for windows,要先配置共享逻辑盘(Settings->Shared Driver->勾选逻辑盘)
2. 如果需要配置成多节点elasticsearch集群,可以修改环境变量 discovery.type
3. 注意与在物理机安装的不同之处:默认的集群名称是elasticsearch,而Docker镜像默认的集群名称是 docker-cluster, 这个可以通过交互模式进行修改 docker exec -it <container_id> bash
三,配置应用并指向Docker容器
本文中使用spring-data作为驱动,配置文件内容如下:
application.yml
spring:
data:
elasticsearch:
repositories:
enabled: true
cluster-nodes: localhost:9300
cluster-name: docker-cluster
tips: 如上所述,docker容器中elasticsearch集群的默认名称是 docker-cluster 因此 cluster-name 要对应起来,否则spring无法发现有效的节点,运行时抛出找不到节点的错误:
org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available
四,启动应用
如果console中没有输出报错信息,则表示已经配置成功:
(可以忽略MapperParsingException,因为本文中没有配置Mapper)