Linux上使用Docker部署ElasticSearch集群(三节点)
步骤:
# 拉取镜像 默认为最新
docker pull elasticsearch:5.6.8
# 需要创建下面结构的文件夹
config目录结构
# 创建文件夹:config 文件 :es-node1.yml,es-node2.yml,es-node3.yml
# 创建文件夹:plugins1,plugins2,plugins3
# 创建文件夹:data1,data2,data3
cd /home
mkdir es
cd es
#创建插件文件夹 plugins1,plugins2,plugins3
mkdir plugins1
mkdir plugins2
mkdir plugins3
#创建数据文件夹 data1,data2,data3
mkdir data1
mkdir data2
mkdir data3
#创建配置文件夹及配置文件
mkdir config
touch es-node1.yml
vim es-node1.yml
# 将下面配置文件写入
cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: xxx #内网ip
http.port: 9200 #节点1tcp端口
transport.tcp.port: 9300 #节点2tcp端口
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["内网ip":"节点1端口","内网ip":"节点2端口","内网ip":"节点3端口"]
discovery.zen.minimum_master_nodes: 1
# 复制节点1配置文件
cp es-node1.yml es-node2.yml
cp es-node1.yml es-node3.yml
# 修改节点2 3配置文件信息
node.name: xxx
http.port: xxx
transport.tcp.port: xxx
# 执行节点一启动命令(合并成一行执行)
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -id -p 9200:9200 -p 9300:9300
-v /home/es/config/es-node1.yml:/usr/share/elasticsearch/config/elasticsearch.yml
-v /home/es/plugins1:/usr/share/elasticsearch/plugins
-v /home/es/data1:/usr/share/elasticsearch/data --name ES01 elasticsearch
# 参数说明
-e jvm参数 #设置内存256m否则其他节点不能运行
-v /目录1:目录2 #挂载文件
--name #容器名称
-id # 守护式启动
-p port1:port2 #端口映射
# 执行节点二启动命令(合并成一行执行)
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -id -p 9201:9201 -p 9301:9301
-v /home/es/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml
-v /home/es/plugins2:/usr/share/elasticsearch/plugins
-v /home/es/data2:/usr/share/elasticsearch/data --name ES02 elasticsearch
# 执行节点三启动命令(合并成一行执行)
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -id -p 9202:9202 -p 9302:9302
-v /home/es/config/es-node3.yml:/usr/share/elasticsearch/config/elasticsearch.yml
-v /home/es/plugins3:/usr/share/elasticsearch/plugins
-v /home/es/data3:/usr/share/elasticsearch/data --name ES03 elasticsearch
# 命令(合并成一行执行)