好吧,我让它工作,这比我想象的要容易得多。
var name = Dns.GetHostName(); // get container id var ip = Dns.GetHostEntry(name).AddressList.FirstOrDefault(x => x.AddressFamily == AddressFamily.InterNetwork);
随着 container_id/name 如果它是IP4地址,我可以轻松比较IP。然后,我可以使用此地址并将其传递给Consul。现在,运行状况检查可以使用来自外部主机的IP来成功调用容器。
container_id/name
我对结果仍然不是100%满意,因为它依赖于“第一个”有效的IP4地址 AddressList (目前,没有更多,所以我得到了这个)。任何更好/更通用的解决方案仍然是受欢迎的。
AddressList