Docker

如何列出 Docker VIP 地址?

  • August 7, 2018

我可以使用以下方法列出 docker 覆蓋網路內的所有容器 IP 地址:

~# docker network inspect <network_id>

我正在嘗試在一些 Docker 群堆棧中進行解析器故障排除。似乎解析到了錯誤的 IP 地址,但我想先檢查它是否解析到 VIP。我說的是容器之間的網路,而不是入口網路。

在我的任務中,我發現了這個Docker Issue 評論。這表明:

從調試的角度來看,使用的工具是:

  1. tcpdump
  2. 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

引用自:https://serverfault.com/questions/925267