1

Given the simplest example, the test swarm consists just of one node so all containers run in one place.

The stack is setup to run in a custom Docker network; the containers are not directly mapped to the host (if I do not want this explicitely) but the mesh network should take care.

Now I have observed the following:

  • On a Windows machine, published ports are available (curl check OK)
  • On a Linux machines with Ubuntu it works
  • On a SLES machine it does not work

I consider, the design is that a custom network is not automatically mapped to host network.

What could be the problem with the SLES system? How to debug it?

UPDATE

Firewall does not seem to be a problem here: output for iptables -L shows everywhere all --anywhere

Ingress mode is active (no difference with one host); docker ps shows a live container listening on the proper tcp port.

`[{"Protocol":"tcp","TargetPort":1234,"PublishedPort":1234,"PublishMode":"ingress"}]' 

I have tried as hostname: localhost, actual hostname, 127.0.0.2, host's IP. All tests in the host console. Also checks from outside.

Possibly related: https://github.com/moby/moby/issues/33972

====

How it works:

curl -d http://localhost:port/api ..
nmap localhost -p
-> meaningful output 

How it does not work:

# same commands as above give the output:
curl: (7) Failed to connect to localhost port ...
nmap: 1234/tcp closed unknown
  • Hwo does it 'not work', what is the error message ? – Tensibai Mar 9 '18 at 14:12
  • hi Tensibai! ^^ update – Peter Mar 9 '18 at 15:08
  • 1
    Check /etc/hosts It's possible SLES doesn't map localhost to 127.0.0.1 nor 127.0.1.1, thus breaking the loopback mechanism. Or maybe just a preference in ipv6 instead of ipv4 which swarm doesn't handle... (Those are just guesses) – Tensibai Mar 9 '18 at 15:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.