介绍
Elasticsearch也可用作Docker镜像。图像使用centos:7作为基本图像。
有关所有已发布的Docker镜像和标记的列表,请访问 www.docker.elastic.co。
官方文档
官方下载镜像
获取镜像
1 | docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.2
启动单节点集群
1 | docker run -p 9200:9200 --name=ela -d -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.10.2
登录集群
1 | docker exec -it ela bash
启动多个节点的集群
创建一个docker-compose.yml
file:
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- elastic
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data02:/usr/share/elasticsearch/data
networks:
- elastic
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2
container_name: es03
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data03:/usr/share/elasticsearch/data
networks:
- elastic
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
elastic:
driver: bridge
执行如下命令启动集群
前台启动
1 | docker-compose up
后台启动
1 | docker-compose up -d
停止集群
1 | docker-compose down
检查机器健康状态
1 | curl http://127.0.0.1:9200/_cat/health
输出
1544110980 15:43:00 docker-cluster green 2 2 0 0 0 0 0 0 - 100.0%