我创建了两个服务,service-a
(3个回复)和service-b
(5个回复)。
它们位于micro
覆盖网络中。
我想从dns获取所有容器ip。
# docker run --rm --network micro alpine nslookup service-a
但只能获得一个ip。是否有使用dns获取某些服务的所有IP地址?
答案 0 :(得分:0)
您可以使用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}}"
这一行命令找到网络ID,然后在docker inspect
中使用它来使用-f(格式)参数
答案 1 :(得分:0)
使用 tasks.<service-name>
获取属于特定服务的所有容器。