基于Docker部署单节点ElasticSearch
- 拉取镜像
docker pull elasticsearch:7.17.2
- 运行容器
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type.type=single-node" elasticsearch:7.4.2
docker run -it --name elasticsearch -d -p 9200:9200 -p 9300:9300 -p 5601:5601 elasticsearch
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag
参数释义:
-d:守护线程启动(后台启动)
//映射配置文件
-v /usr/share/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
-e:分配初始内存 -e ES_JAVA_OPTS=“-Xms256m -Xmx256m”
- 进入容器
docker exec -it es /bin/bash - 跨域配置
4.1 修改配置文件
vi elasticsearch.yml
4.2 加入跨域配置
http.cors.enabled: true
基于Docker部署分布式ElasticSearch
利用 Docker 提供的 compose 工具帮我们定制好启动的服务内容。
一共有三个步骤:
- 在桌面或者任何地方新建一个文件夹 命名为 elasticsearch-cluster
- 新建一个文件命名为docker-compose.yml
- 把下面提供的代码粘贴复制进去,在当前目录下打开控制台输入 docker-compose up
docker-compose.yml
version: '3'
services:
cerebro: // cerebro 用来监控 ES 健康状态的
image: lmenezes/cerebro:0.8.3
container_name: cerebro
ports:
- "9000:9000"
command:
- -Dhosts.0.host=http://elasticsearch:9200
networks:
- es7net
kibana: // ElasticSearch 的可视化图像界面
image: docker.elastic.co/kibana/kibana:7.4.2
container_name: kibana7
environment:
- I18N_LOCALE=zh-CN
- XPACK_GRAPH_ENABLED=true
- TIMELION_ENABLED=true
- XPACK_MONITORING_COLLECTION_ENABLED="true"
ports:
- "5601:5601"
networks:
- es7net
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.4.2
container_name: es7_01
environment:
- cluster.name=eslearn
- node.name=es7_01
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.seed_hosts=es7_01,es7_02
- cluster.initial_master_nodes=es7_01,es7_02
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es7data1:/Users/chiyue/docker/elasticsearch/data
ports:
- 9200:9200
networks:
- es7net
elasticsearch2:
image: docker.elastic.co/elasticsearch/elasticsearch:7.4.2
container_name: es7_02
environment:
- cluster.name=eslearn
- node.name=es7_02
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.seed_hosts=es7_01,es7_02
- cluster.initial_master_nodes=es7_01,es7_02
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es7data2:/Users/chiyue/docker/elasticsearch/data
networks:
- es7net
volumes:
es7data1:
driver: local
es7data2:
driver: local
networks:
es7net:
driver: bridge
启动命令:docker docker-compose up
Kibana
在浏览器输入 http://localhost:5601/,进入 Kibana 中文界面。
cerebr
脚本安装了一个叫 cerebro 的工具,能够监视 ES 状态。在浏览器输入:http://localhost:9000/。