docker swarm如何使用dns获取所有容器ip?
我创建了两个服务,docker swarm如何使用dns获取所有容器ip?,dns,docker-swarm,swarm,Dns,Docker Swarm,Swarm,我创建了两个服务,service-a(3个回复)和service-b(5个回复)。 它们位于micro覆盖网络中 我想从dns获取所有容器ip # docker run --rm --network micro alpine nslookup service-a 但只获得一个ip。是否必须使用dns获取某些服务的所有IP地址?您可以使用docker inspect获取服务的虚拟IP: NETWORK_ID=$(docker network ls -q --no-trunc --filter n
service-a
(3个回复)和service-b
(5个回复)。
它们位于micro
覆盖网络中
我想从dns获取所有容器ip
# docker run --rm --network micro alpine nslookup service-a
但只获得一个ip。是否必须使用dns获取某些服务的所有IP地址?您可以使用
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
中使用它来仅获取此网络中的服务虚拟IP,使用-f(格式)参数您可以使用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(格式)仅获取此网络中的服务虚拟IP参数使用
任务。
获取属于特定服务的所有容器。使用任务。
获取属于特定服务的所有容器。您是否能够确定如何从容器中列出服务?您是否能够确定如何从容器中列出服务?