我在用着https://hub.docker.com/_/centos/ CentOS 7 docker 镜像。我在集群内创建了 3 个副本的服务,我想查询内部 docker dns。
为了BusyBox 图像 查找工作方式与文档中所示完全相同:https://docs.docker.com/engine/swarm/networking/#/use-swarm-mode-service-discovery):
nslookup tasks.my-web
Server: 127.0.0.11
Address 1: 127.0.0.11
Name: tasks.my-web
Address 1: 10.0.0.8 my-web.2.2s1t73cy4m5oi4nadqjrsp0y9.cluster_net
Address 2: 10.0.0.9 my-web.3.2vu4qaxm5zkz56atmmvlm7iur.cluster_net
Address 3: 10.0.0.7 my-web.1.5dtqm90o8b4vgrli3z81axmyp.cluster_net
但与查找工具(包:bind-libs-9.9.4-29.el7_2.4.x86_64、bind-utils-9.9.4-29.el7_2.4.x86_64)CentOS 7 容器我得到一个截断的结果:
nslookup tasks.my-web
Server: 127.0.0.11
Address: 127.0.0.11#53
Non-authoritative answer:
Name: tasks.my-web
Address: 10.0.0.9
Name: tasks.my-web
Address: 10.0.0.7
Name: tasks.my-web
Address: 10.0.0.8
我想解决这个问题。
更新:我可以使用命令获取更多信息
nslookup 10.0.0.7
nslookup 10.0.0.8
nslookup 10.0.0.9
但我对更简单的解决方案感兴趣。
答案1
仅单线解决方案
dig +short tasks.$SERVICE_NAME | xargs -r -n 1 dig +short -x
输出
my-web.2.2s1t73cy4m5oi4nadqjrsp0y9.cluster_net
my-web.3.2vu4qaxm5zkz56atmmvlm7iur.cluster_net
my-web.1.5dtqm90o8b4vgrli3z81axmyp.cluster_net