1. 拉取镜像等基础环境
# 版本必须统一
docker pull elasticsearch:6.6.0
docker pull kibana:6.6.0
# 防火墙开发端口 kidana 运行环境会生成虚拟IP 必须开启防火墙 docker会自动进行端口转发
firewall-cmd --add-port=5601/tcp --permanent
firewall-cmd --add-port=9200/tcp --permanent
firewall-cmd --add-port=9300/tcp --permanent
firewall-cmd --add-port=9301/tcp --permanent
firewall-cmd --add-port=9302/tcp --permanent
2. 创建ES集群配置文件
mkdir /opt/es/data{1..3} -p
# 宿主机没创建用户组时 给工作目录满权限
chomod -R 777 /opt/es/data1
chomod -R 777 /opt/es/data2
chomod -R 777 /opt/es/data3
mkdir /opt/es/conf
vim /opt/es/conf/es1.yml
cluster.name: lyw
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 10.0.0.20
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["10.0.0.20:9300","10.0.0.20:9301","10.0.0.20:9302"]
discovery.zen.minimum_master_nodes: 2
vim /opt/es/conf/es2.yml
cluster.name: lyw
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 10.0.0.20
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["10.0.0.20:9300","10.0.0.20:9301","10.0.0.20:9302"]
discovery.zen.minimum_master_nodes: 2
vim /opt/es/conf/es3.yml
cluster.name: lyw
node.name: es-node3
network.bind_host: 0.0.0.0
network.publish_host: 10.0.0.20
http.port: 9202
transport.tcp.port: 9302
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["10.0.0.20:9300","10.0.0.20:9301","10.0.0.20:9302"]
discovery.zen.minimum_master_nodes: 2
3. 启动
# 先启动镜像 进入镜像查看容器内的工作目录及配置文件位置 不同版本 目录架构不太一样
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES elasticsearch:6.6.0
docker exec -it 容器IP /bin/bash
# 容器里data目录在/目录下
# 容器里conf 在/usr/share/elasticsearch/config/elasticsearch.yml
# 目录映射到本地目录 实现目录数据同步。
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 -v /opt/es/conf/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /opt/es/conf/data1:/data --name ES01 elasticsearch:6.6.0
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9201:9201 -p 9301:9301 -v /opt/es/conf/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /opt/es/conf/data2:/data --name ES02 elasticsearch:6.6.0
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9202:9202 -p 9302:9302 -v /opt/es/conf/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /opt/es/conf/data3:/data --name ES03 elasticsearch:6.6.0
# 启动 kibana 指定监控地址
docker run --name kibana -e ELASTICSEARCH_URL="http://10.0.0.20:9200" -p 5601:5601 -d kibana:6.6.0