1. 安装ES
1.1 基础
拉取镜像
docker pull elasticsearch:7.17.9
创建目录:
mkdir /app/elasticsearch-node-1
mkdir /app/elasticsearch-node-2
mkdir /app/elasticsearch-node-3
启动一个空白容器,将配置文件拷贝下来
docker run -dit --name es elasticsearch:7.17.9
docker cp es:/usr/share/elasticsearch elasticsearch-node-1/
cp -r elasticsearch-node-1/* elasticsearch-node-2/
cp -r elasticsearch-node-1/* elasticsearch-node-3/
删除data目录下面的所有
chmod 777 -R elasticsearch-node-1
chmod 777 -R elasticsearch-node-2
chmod 777 -R elasticsearch-node-3
1.2 修改配置文件
vim elasticsearch.yml
Node-1:
cluster.name: elasticsearch-cluster
node.name: node-1
network.bind_host: 0.0.0.0
network.publish_host: ip
http.port: 9200
transport.tcp.port: 9300
node.master: true
node.data: true
discovery.seed_hosts: ["node-2-ip:9301","node-3-ip:9302"]
cluster.initial_master_nodes: ["node-1"]
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"
Node-2:
cluster.name: elasticsearch-cluster
node.name: node-2
network.bind_host: 0.0.0.0
network.publish_host: ip
http.port: 9201
transport.tcp.port: 9301
node.master: true
node.data: true
discovery.seed_hosts: ["node-1-ip:9300","node-3-ip:9302"]
cluster.initial_master_nodes: ["node-1"]
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"
Node-3:
cluster.name: elasticsearch-cluster
node.name: node-3
network.bind_host: 0.0.0.0
network.publish_host: ip
http.port: 9202
transport.tcp.port: 9302
node.master: true
node.data: true
discovery.seed_hosts: ["node-1-ip:9300","node-2-ip:9301"]
cluster.initial_master_nodes: ["node-1"]
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"
1.3 启动容器
Node-1:
docker run -d --restart=always \
-p 9200:9200 -p 9300:9300 \
-v /app/elasticsearch-node-1:/usr/share/elasticsearch \
--name es-node-1 \
elasticsearch:7.17.9
Node-2:
docker run -d --restart=always \
-p 9201:9201 -p 9301:9301 \
-v /app/elasticsearch-node-2:/usr/share/elasticsearch \
--name es-node-2 \
elasticsearch:7.17.9
Node-3:
docker run -d --restart=always \
-p 9202:9202 -p 9302:9302 \
-v /app/elasticsearch-node-3:/usr/share/elasticsearch \
--name es-node-3 \
elasticsearch:7.17.9
1.4 启动es-head容器
这个容器也需要提前将/usr/src/app内容拷贝出来,然后再启动容器挂载
docker run -d --name es_head -p 9100:9100 -v /app/elasticsearch-head:/usr/src/app elasticsearch-head:5
访问IP+9100访问

1.5 启动kibana容器
docker run -dit --name kibana kibana:7.17.9
docker cp kibana:/usr/share/kibana .
将/usr/share/kibana内容拷贝出来,然后再启动容器挂载
mv kibana/* .
rm -r kibana
docker stop kibana
docker rm kibana
chmod -R 777 kibana
docker run -dit --name kibana -p 5601:5601 -v /app/dockerdata/kibana:/usr/share/kibana kibana:7.17.9
修改kibana.yml文件
elasticsearch.hosts: [ "http://ip:9200" ]
修改为es的ip地址