Docker
如何列出 Docker VIP 地址?
我可以使用以下方法列出 docker 覆蓋網路內的所有容器 IP 地址:
~# docker network inspect <network_id>
我正在嘗試在一些 Docker 群堆棧中進行解析器故障排除。似乎解析到了錯誤的 IP 地址,但我想先檢查它是否解析到 VIP。我說的是容器之間的網路,而不是入口網路。
在我的任務中,我發現了這個Docker Issue 評論。這表明:
從調試的角度來看,使用的工具是:
- tcpdump
- ipvsadm –> 負載均衡器由 ipvs 完成
但我無法找到
ipvsadm
用於列印在我的 docker 網路中使用的 VIP 的選項。
您可以通過檢查服務本身來查找服務的 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