1. 程式人生 > 其它 >docker配置elasticsearch(多個例項)

docker配置elasticsearch(多個例項)

1、執行命令下載映象

docker pull elasticsearch:7.17.0

2、新建資料夾,掛在配置檔案

mkdir -p docker/es/config
mkdir -p docker/es/dev-data
mkdir -p docker/es/dev-logs

mkdir -p docker/es/test-data
mkdir -p docker/es/test-logs

mkdir -p docker/es/prod-logs
mkdir -p docker/es/prod-logs

3、在confg建立三個檔案,分別用來啟動三個容器

 prod.yml

#叢集名稱-生產環境
cluster.name: es
-prod #節點 node.name: node-3 #標記主節點 node.master: true node.data: true #外網訪問 http.host: 0.0.0.0 network.host: 127.0.0.1 #埠號 http.port: 9203 transport.tcp.port: 9303 http.cors.enabled: true http.cors.allow-origin: "*" #繫結的埠 discovery.zen.ping.unicast.hosts: ["127.0.0.1:9301", "127.0.0.1:9302", "127.0.0.1:9303"] #初始化主節點 cluster.initial_master_nodes: [
"node-3"] action.destructive_requires_name: true #允許兩個節點執行 node.max_local_storage_nodes: 3 cluster.routing.allocation.same_shard.host: true

test.yml

#叢集名稱-測試環境
cluster.name: es-test
#節點
node.name: node-2
#標記主節點
node.master: true
node.data: true
#外網訪問
http.host: 0.0.0.0
network.host: 127.0.0.1
#埠號
http.port: 
9202 transport.tcp.port: 9302 http.cors.enabled: true http.cors.allow-origin: "*" #繫結的埠 discovery.zen.ping.unicast.hosts: ["127.0.0.1:9301", "127.0.0.1:9302", "127.0.0.1:9303"] #初始化主節點 cluster.initial_master_nodes: ["node-2"] action.destructive_requires_name: true #允許兩個節點執行 node.max_local_storage_nodes: 3 cluster.routing.allocation.same_shard.host: true

dev.yml

#叢集名稱-開發環境
cluster.name: es-dev
#節點
node.name: node-1
#標記主節點
node.master: true
node.data: true
#外網訪問
http.host: 0.0.0.0
network.host: 127.0.0.1
#埠號
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
#繫結的埠
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9301", "127.0.0.1:9302", "127.0.0.1:9303"]
#初始化主節點
cluster.initial_master_nodes: ["node-1"]
action.destructive_requires_name: true
#允許兩個節點執行
node.max_local_storage_nodes: 3
cluster.routing.allocation.same_shard.host: true

4、修改資料夾許可權,把xxxx改成上面資料夾,或者使用xftp直接修改許可權

chmod 777 xxxx

5、執行三個容器,--name 表示容器名字, 後面掛在檔案請根據自己的需要自行修改,需要和上面的三個yml檔案分別對應

docker run -d --name es-dev -p 9201:9201 -p 9301:9301  -v /docker/es/config/dev.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /docker/es/dev-data:/usr/share/elasticsearch/data -v /docker/es/plugins:/usr/share/elasticsearch/plugins -v /docker/es/dev-logs:/usr/share/elasticsearch/logs -d elasticsearch:7.17.0

docker run -d --name es-test -p 9202:9202 -p 9302:9302 -v /docker/es/config/test.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /docker/es/test-data:/usr/share/elasticsearch/data -v /docker/es/plugins:/usr/share/elasticsearch/plugins -v /docker/es/test-logs:/usr/share/elasticsearch/logs -d elasticsearch:7.17.0

docker run -d --name es-prod -p 9203:9203 -p 9303:9303 -v /docker/es/config/prod.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /docker/es/prod-data:/usr/share/elasticsearch/data -v /docker/es/plugins:/usr/share/elasticsearch/plugins -v /docker/es/prod-logs:/usr/share/elasticsearch/logs -d elasticsearch:7.17.0

6、然後可以輸入 docker ps -a 命令檢視執行情況,另外可能啟動的時間較長,請耐心等待

7、執行成功之後可以輸入ip地址加上埠號進行訪問

    ip:9201      ip:9202     ip:9203

部署elasticsearch-head

1、執行命令下載

docker pull mobz/elasticsearch-head:5

2、執行命令啟動容器

docker run -d -p 9100:9100 mobz/elasticsearch-head:5

3、輸入 ip:9100 可訪問,另外以上的埠都需要提前先開放才可以,比如開啟防火牆