以下を使用して、Dockerオーバーレイネットワーク内のすべてのコンテナーIPアドレスを一覧表示できます。
~# docker network inspect <network_id>
Dockerスウォームスタックでリゾルバーのトラブルシューティングを行おうとしています。間違ったIPアドレスに対して解決が行われているようですが、最初にVIP)に解決されているかどうかを確認したいと思います。入力ネットワークではなく、コンテナー間のネットワークについて話しています。
私の探求で私はこれを見つけました Docker Issue comment 。これはこれを示唆しています:
デバッグの観点から、使用するツールは次のとおりです。
- tcpdump
- ipvsadm->ロードバランサーはipvsで実行されます
しかし、Dockerネットワーク内で使用されているVIPを印刷するために使用するipvsadm
オプションが見つかりません。
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