私はそれを使用していますhttps://hub.docker.com/_/centos/ CentOS 7ドッカーイメージ。クラスタ内に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