2

I can list all container IP address inside a docker overlay network using:

~# docker network inspect <network_id>

I'm trying to do resolver troubleshooting in some Docker swarm stack. It seems that resolving is done to the wrong IP address, but I want to check if it is resolved to a VIP first. I'm talking the network between containers, not the ingress network.

In my quest I found this Docker Issue comment. Which suggests this:

From a debugging point of view, the tool to use are:

  1. tcpdump
  2. ipvsadm --> load balancer is done with ipvs

But I'm unable to find which ipvsadm options to use to print the VIP's used inside my docker network.

Tim
  • 123
  • 5

1 Answers1

4

You can lookup the VIP for a service with an inspect on the service itself (I typically use jq to format the json output):

docker service inspect --format '{{json .Endpoint.VirtualIPs}}' ${service_name} \
 | jq .

To loop over all your services, you can do a little scripting:

for service in $(docker service ls -q); do
  docker service inspect --format \
     '{{.Spec.Name}}: {{range .Endpoint.VirtualIPs}}{{.Addr}} {{end}}' \
     ${service}
done
BMitch
  • 5,189
  • 1
  • 21
  • 30