# 拉取 ElasticSearch 镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.0
# 创建并启动一个 ElasticSearch 节点
docker run -d --name es-node1 \
-e "discovery.type=single-node" \
-e "cluster.name=my-es-cluster" \
-v es-data1:/usr/share/elasticsearch/data \
-p 9200:9200 \
docker.elastic.co/elasticsearch/elasticsearch:7.10.0
# 创建并启动第二个 ElasticSearch 节点,加入到同一个集群
docker run -d --name es-node2 \
-e "discovery.seed_hosts=es-node1" \
-e "cluster.name=my-es-cluster" \
-v es-data2:/usr/share/elasticsearch/data \
--link es-node1:es-node1 \
docker.elastic.co/elasticsearch/elasticsearch:7.10.0
# 创建并启动第三个 ElasticSearch 节点,加入到同一个集群
docker run -d --name es-node3 \
-e "discovery.seed_hosts=es-node1" \
-e "cluster.name=my-es-cluster" \
-v es-data3:/usr/share/elasticsearch/data \
--link es-node1:es-node1 \
--link es-node2:es-node2 \
docker.elastic.co/elasticsearch/elasticsearch:7.10.0
这个例子演示了如何使用 Docker 快速部署一个有三个节点的 ElasticSearch 集群。每个节点通过 --link
参数相连,并通过环境变量 discovery.seed_hosts
指定加入集群的节点。数据卷被用来持久化存储数据,并确保即使容器重启了数据也不会丢失。注意,这个例子仅用于演示目的,并且在生产环境中需要更多的配置,比如网络设置和资源限制。