web-dev-qa-db-ja.com

Docker VIPアドレスを一覧表示するにはどうすればよいですか?

以下を使用して、Dockerオーバーレイネットワーク内のすべてのコンテナーIPアドレスを一覧表示できます。

~# docker network inspect <network_id>

Dockerスウォームスタックでリゾルバーのトラブルシューティングを行おうとしています。間違ったIPアドレスに対して解決が行われているようですが、最初にVIP)に解決されているかどうかを確認したいと思います。入力ネットワークではなく、コンテナー間のネットワークについて話しています。

私の探求で私はこれを見つけました Docker Issue comment 。これはこれを示唆しています:

デバッグの観点から、使用するツールは次のとおりです。

  1. tcpdump
  2. ipvsadm->ロードバランサーはipvsで実行されます

しかし、Dockerネットワーク内で使用されているVIPを印刷するために使用するipvsadmオプションが見つかりません。

1
Tim

VIPサービス自体を検査するサービスを検索できます(私は通常、jqを使用してjson出力をフォーマットします):

docker service inspect --format '{{json .Endpoint.VirtualIPs}}' ${service_name} \
 | jq .

すべてのサービスをループするには、次のスクリプトを実行します。

for service in $(docker service ls -q); do
  docker service inspect --format \
     '{{.Spec.Name}}: {{range .Endpoint.VirtualIPs}}{{.Addr}} {{end}}' \
     ${service}
done
3
BMitch