You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When connected to multiple networks using Docker For Windows, cannot join a swarm through NAT as Docker Swarm will use the closest ip, instead of the ip given in the join command. Results in a corrupted state.
As you can see, it has the completely wrong ip address, though given in the join command, it lists the correct ip address. The correct ip address is fully routable from the swarm subnet:
withinboredom@manager:~$ ping 192.168.2.11
PING 192.168.2.11 (192.168.2.11) 56(84) bytes of data.
64 bytes from 192.168.2.11: icmp_seq=1 ttl=127 time=0.581 ms
64 bytes from 192.168.2.11: icmp_seq=2 ttl=127 time=0.340 ms
64 bytes from 192.168.2.11: icmp_seq=3 ttl=127 time=0.281 ms
^C
--- 192.168.2.11 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.281/0.400/0.581/0.131 ms
withinboredom@manager:~$ sudo traceroute -T 192.168.2.11
traceroute to 192.168.2.11 (192.168.2.11), 30 hops max, 60 byte packets
1 DESKTOP-F9LFL53.mshome.net (192.168.137.1) 0.753 ms * *
2 * * *
3 DESKTOP-F9LFL53 (192.168.2.11) 0.944 ms 0.938 ms 1.014 ms
Describe the results you received:
Trying to communicate with the wrong ip address.
Describe the results you expected:
I expected for it to use the ip address given.
Additional information you deem important (e.g. issue happens only occasionally):
No way that I can figure to force it to use the correct ip address
Output of docker version:
withinboredom@manager:~$ docker version
Client:
Version: 18.03.1-ce
API version: 1.37
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:17:20 2018
OS/Arch: linux/amd64
Experimental: false
Orchestrator: swarm
Server:
Engine:
Version: 18.03.1-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:15:30 2018
OS/Arch: linux/amd64
Experimental: false
I think this is due to docker swarm init with no --advertise-addr option which uses an IP shown in node join-token result and which is not the one we want to use on local network but this from docker0 network.
Description
When connected to multiple networks using Docker For Windows, cannot join a swarm through NAT as Docker Swarm will use the closest ip, instead of the ip given in the join command. Results in a corrupted state.
My network topology looks like:
On the 192.168.137.X subnet, I have a swarm cluster that is functioning properly.
I then run the following command:
docker swarm join --advertise-addr 192.168.2.11 --listen-addr 192.168.2.11 --data-path-addr 192.168.2.11 --token SWMTKN-1-62mgsensh897tvspfqqv1zc8ewsy64xjkt2igwn54yoa5i5n3o-6rnc98aekio4ghmbwumgq6a3e 192.168.137.177:2377
It connects properly, but after a few moments, the swarm manager reports it as down.
On the swarm manager I run
docker node inspect linuxkit-00155dcca13d
and get the following output:As you can see, it has the completely wrong ip address, though given in the join command, it lists the correct ip address. The correct ip address is fully routable from the swarm subnet:
Describe the results you received:
Trying to communicate with the wrong ip address.
Describe the results you expected:
I expected for it to use the ip address given.
Additional information you deem important (e.g. issue happens only occasionally):
No way that I can figure to force it to use the correct ip address
Output of
docker version
:Output of
docker info
:Additional environment details (AWS, VirtualBox, physical, etc.):
Hyper-v machines + Docker For Windows
The text was updated successfully, but these errors were encountered: