# Elasticsearch cluster with docker - handshake failed

**URL:** <https://discuss.elastic.co/t/elasticsearch-cluster-with-docker-handshake-failed/134223>\
**Category:** Elasticsearch\
**Created:** [June 1, 2018, 12:24pm UTC](https://discuss.elastic.co/t/elasticsearch-cluster-with-docker-handshake-failed/134223 "2018-06-01T12:24:44Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![maciejgawlowski](https://avatars.discourse-cdn.com/v4/letter/m/3be4f8/32.png) [@maciejgawlowski](https://discuss.elastic.co/u/maciejgawlowski)\
**Post date:** [June 1, 2018, 12:24pm UTC](https://discuss.elastic.co/t/elasticsearch-cluster-with-docker-handshake-failed/134223/1 "2018-06-01T12:24:44Z")

</div>

Hi, I try to connect one elasticsearch data node to another elasticsearch data-master node. Both elasticsearch are running in docker containers on two different virtual machines. When I try to connect I get error:

[2018-06-01T12:21:19,083][WARN][o.e.d.z.ZenDiscovery] [elastic2] failed to connect to master [{elastic1}{Cs3L9TgtRBq5nlEnDn31IA}{Qr7ZvpCKTPaEx\_gZR2RJLw}{172.20.0.2}{172.20.0.2:9300}], retrying...  
org.elasticsearch.transport.ConnectTransportException: [elastic1][172.20.0.2:9300] handshake failed. unexpected remote node {elastic2}{efMUvUCBQIe3cezvDwPSwA}{t-zLPT8LQ7KGEepbyuTxtw}{172.20.0.2}{172.20.0.2:9300}  
at org.elasticsearch.transport.TransportService.lambda$connectToNode$3(TransportService.java:335) ~[elasticsearch-6.2.3.jar:6.2.3]  
at org.elasticsearch.transport.TcpTransport.connectToNode(TcpTransport.java:514) ~[elasticsearch-6.2.3.jar:6.2.3]  
at org.elasticsearch.transport.TransportService.connectToNode(TransportService.java:331) ~[elasticsearch-6.2.3.jar:6.2.3]  
at org.elasticsearch.transport.TransportService.connectToNode(TransportService.java:318) ~[elasticsearch-6.2.3.jar:6.2.3]  
at org.elasticsearch.discovery.zen.ZenDiscovery.joinElectedMaster(ZenDiscovery.java:515) [elasticsearch-6.2.3.jar:6.2.3]  
at org.elasticsearch.discovery.zen.ZenDiscovery.innerJoinCluster(ZenDiscovery.java:483) [elasticsearch-6.2.3.jar:6.2.3]  
at org.elasticsearch.discovery.zen.ZenDiscovery.access$2500(ZenDiscovery.java:90) [elasticsearch-6.2.3.jar:6.2.3]  
at org.elasticsearch.discovery.zen.ZenDiscovery$JoinThreadControl$1.run(ZenDiscovery.java:1253) [elasticsearch-6.2.3.jar:6.2.3]  
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:573) [elasticsearch-6.2.3.jar:6.2.3]  
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0\_161]  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0\_161]  
at java.lang.Thread.run(Thread.java:748) [?:1.8.0\_161]

I attach configuration:  
ELASTICSEARCH DATA-MASTER:

docker-compose:  
version: '2'

services:

elasticsearch:  
build:  
context: elasticsearch/  
restart: always  
volumes:  
- ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro  
#store data as docker volume (stored in /home/docker-data/volumes)  
- elastic\_search\_data:/usr/share/elasticsearch/data  
ports:  
- "9200:9200"  
- "9300:9300"  
environment:  
- cluster.name=elasticsearch-cluster  
- ES\_JAVA\_OPTS=-Xmx1024m -Xms1024m  
networks:  
- elk

logstash:  
build:  
context: logstash/  
restart: always  
volumes:  
- ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml:ro  
- ./logstash/pipeline:/usr/share/logstash/pipeline:ro  
- ./logstash/cert:/etc/pki/tls:ro  
- ./logstash/patterns:/usr/share/logstash/patterns:ro  
ports:  
- "5000:5000"  
environment:  
- LS\_JAVA\_OPTS=-Xmx512m -Xms512m  
networks:  
- elk  
depends\_on:  
- elasticsearch

kibana:  
build:  
context: kibana/  
restart: always  
volumes:  
- ./kibana/config/:/usr/share/kibana/config:ro  
ports:  
- "5601:5601"  
environment:  
- KI\_JAVA\_OPTS=-Xmx512m -Xms512m  
networks:  
- elk  
depends\_on:  
- elasticsearch

volumes:  
elastic\_search\_data:  
driver: local

networks:  
elk:  
driver: bridge

elasticsearch.yml:  
cluster.name: elasticsearch-cluster  
network.host: 0.0.0.0  
node.name: elastic1  
node.master: true  
node.data: true

discovery.zen.minimum\_master\_nodes: 1  
discovery.zen.ping.unicast.hosts: ["172.28.4.185"]

and second node:  
docker-compose:  
version: '2'

services:

elasticsearch:  
build:  
context: elasticsearch/  
restart: always  
volumes:  
- ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro  
#store data as docker volume (stored in /home/docker-data/volumes)  
- elastic\_search\_data:/usr/share/elasticsearch/data  
ports:  
- "9200:9200"  
- "9300:9300"  
environment:  
- cluster.name=elasticsearch-cluster  
- ES\_JAVA\_OPTS=-Xmx1024m -Xms1024m  
networks:  
- elk

volumes:  
elastic\_search\_data:  
driver: local

networks:  
elk:  
driver: bridge

elasticsearch.yml:  
cluster.name: elasticsearch-cluster  
network.host: 0.0.0.0  
node.name: elastic2  
node.master: false  
node.data: true

discovery.zen.minimum\_master\_nodes: 1  
discovery.zen.ping.unicast.hosts: ["172.28.4.184"]

Could anyone help me?

---

<div class="post-metadata">

**Author:** ![maciejgawlowski](https://avatars.discourse-cdn.com/v4/letter/m/3be4f8/32.png) [@maciejgawlowski](https://discuss.elastic.co/u/maciejgawlowski)\
**Post date:** [June 7, 2018, 6:21am UTC](https://discuss.elastic.co/t/elasticsearch-cluster-with-docker-handshake-failed/134223/2 "2018-06-07T06:21:55Z")

</div>

I`v found a solution for the issue. I`ve connected two docker services via docker network with type overlay. Overlay network allows to connect services running on different host machines. You can find how to configure overlay network in docker docs or in this video: [https://www.youtube.com/watch?v=nGSNULpHHZc](https://www.youtube.com/watch?v=nGSNULpHHZc) . I attach my current configuration:

Elasticsearch data-master node:  
version: '3.6'

services:

elasticsearch-1:  
...  
networks:  
- elasticsearch\_network

logstash:  
...  
networks:  
- elasticsearch\_network  
depends\_on:  
- elasticsearch-1

kibana:  
...  
networks:  
- elasticsearch\_network  
depends\_on:  
- elasticsearch-1

networks:  
elasticsearch\_network:  
driver: overlay  
driver\_opts:  
encrypted: "true"

elasticsearch.yml:  
cluster.name: elasticsearch-cluster  
network.host: 0.0.0.0  
node.name: elasticsearch-1  
node.master: true  
node.data: true

discovery.zen.minimum\_master\_nodes: 1  
discovery.zen.ping.unicast.hosts: [elasticsearch-2]

Elasticsearch only data node:

version: '3.6'

services:

elasticsearch-2:  
...  
networks:  
- elk\_elasticsearch\_network

networks:  
elk\_elasticsearch\_network:  
external: true  
driver: overlay

elasticsearch.yml:  
cluster.name: elasticsearch-cluster  
network.host: 0.0.0.0  
node.name: elasticsearch-2  
node.master: false  
node.data: true

discovery.zen.minimum\_master\_nodes: 1  
discovery.zen.ping.unicast.hosts: [elasticsearch-1]

---

<div class="post-metadata">

**Author:** ![andersonVSA](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/andersonvsa/32/32056_2.png) [@andersonVSA](https://discuss.elastic.co/u/andersonVSA)\
**Post date:** [June 8, 2018, 11:52am UTC](https://discuss.elastic.co/t/elasticsearch-cluster-with-docker-handshake-failed/134223/3 "2018-06-08T11:52:49Z")

</div>

Thank you maciejgawlowski!  
It worked for me in my 2 aws machines, after I created the docker overlay network with docker-swarm.

---

<div class="post-metadata">

**Author:** ![maciejgawlowski](https://avatars.discourse-cdn.com/v4/letter/m/3be4f8/32.png) [@maciejgawlowski](https://discuss.elastic.co/u/maciejgawlowski)\
**Post date:** [June 8, 2018, 12:05pm UTC](https://discuss.elastic.co/t/elasticsearch-cluster-with-docker-handshake-failed/134223/4 "2018-06-08T12:05:04Z")

</div>

Great!

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2018, 12:05pm UTC](https://discuss.elastic.co/t/elasticsearch-cluster-with-docker-handshake-failed/134223/5 "2018-07-06T12:05:11Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
