-
拉取合适版本的镜像,可以去DockerHub查看
docker pull elasticsearch:6.8.10
-
准备需要的目录
mkdir config data1 data2 data3
注:如果ELK选的6.X版本的,那么读者需将data1 data2 data3 开启777权限
chmod 777 data*
- 准备配置文件
vi config/es1.yml
cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 172.18.0.2
# network.host: 172.18.0.2
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: ["ip:9300","ip:9301","ip:9302"]
discovery.zen.minimum_master_nodes: 2
vi config/es2.yml
cluster.name: elasticsearch-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 172.18.0.3
# network.host: 172.18.0.3
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: ["ip:9300","ip:9301","ip:9302"]
discovery.zen.minimum_master_nodes: 2
vi config/es3.yml
cluster.name: elasticsearch-cluster
node.name: es-node3
network.bind_host: 0.0.0.0
network.publish_host: 172.18.0.4
# network.host: 172.18.0.4
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: ["ip:9300","ip:9301","ip:9302"]
discovery.zen.minimum_master_nodes: 2
- 修改最大线程限制,我的是windows+wsl2,其他系统可以查阅这篇博客
wsl -d docker-desktop
sysctl -w vm.max_map_count=262144
- 网络准备
docker network create --subnet=172.18.0.0/16 es_network
- 启动容器
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d \
-p 9200:9200 -p 9300:9300 \
-v E:/MyWork/MyDevelopmentTools/elasticsearch-6.8.10/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v E:/MyWork/MyDevelopmentTools/elasticsearch-6.8.10/data1:/usr/share/elasticsearch/data \
--name ES01 \
--network=es_network \
--ip 172.18.0.2 \
elasticsearch:6.8.10
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d \
-p 9201:9201 -p 9301:9301 \
-v E:/MyWork/MyDevelopmentTools/elasticsearch-6.8.10/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v E:/MyWork/MyDevelopmentTools/elasticsearch-6.8.10/data2:/usr/share/elasticsearch/data \
--name ES02 \
--network=es_network \
--ip 172.18.0.3 \
elasticsearch:6.8.10
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d \
-p 9202:9202 -p 9303:9303 \
-v E:/MyWork/MyDevelopmentTools/elasticsearch-6.8.10/config/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v E:/MyWork/MyDevelopmentTools/elasticsearch-6.8.10/data3:/usr/share/elasticsearch/data \
--name ES03 \
--network=es_network \
--ip 172.18.0.4 \
elasticsearch:6.8.10
成功访问