Docker Swarm, как получить весь контейнер IP с помощью DNS? - PullRequest
0 голосов
/ 23 мая 2018

Я создаю два сервиса, service-a (3 ответа) и service-b (5 ответов).Они находятся в micro оверлейной сети.

Я хочу получить все ip контейнера от dns.

# docker run --rm --network micro alpine nslookup service-a

Но получить только один ip.Есть ли в любом случае, чтобы получить все IP-адреса какой-либо службы, используя DNS?

1 Ответ

0 голосов
/ 24 мая 2018

Вы можете использовать docker inspect для получения виртуального IP-адреса службы:

NETWORK_ID=$(docker network ls -q --no-trunc --filter name=micro) && docker service inspect service-a -f "{{range \$i, \$value := .Endpoint.VirtualIPs}} {{if eq \$value.NetworkID \"$NETWORK_ID\" }}{{$value.Addr}}{{end}}{{end}}"

Эта однострочная команда находит идентификатор сети, затем использует его в docker inspect, чтобы получить только виртуальные IP-адреса служб.в этой сети, используя параметр -f (формат)

...