从Docker中的另一个微服务调用微服务

我在C#中创build了几个在Docker上运行的微服务,我需要从另一个微服务调用Microservice,所以我用这种方式调用:

[HttpGet("GetOrder/{Object_ID}")] public Order GetOrder (int id) { string Baseurl = "http://189.29.0.100/"; ….. using (var client = new HttpClient()) { //Passing service base url client.BaseAddress = new Uri(Baseurl); client.DefaultRequestHeaders.Clear(); //Define request data format client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); //Sending request to find web api REST service resource GetAllEmployees using HttpClient borrowerData = await client.GetStringAsync("api/order/" + Id.ToString()); } … } 

我在组合文件中使用了修复IP,如下所示:

  orderservice: environment: - ASPNETCORE_ENVIRONMENT=Development ports: - "80" networks: default: ipv4_address: 189.29.0.100 

问题是当我们在虚拟机中部署这个项目时,如何使它与这些Ips协同工作?

Docker组合在你的主机上创build一个虚拟networking,这些服务不能从Docker外部与这些IP路由。 但是在虚拟networking中,所有的服务都可以通过名字( http://otherservice/ )来访问对方。 如果您想要访问虚拟机上的所有已部署的微服务,则需要在您的泊坞窗内创build一个反向代理。 例如一个向其他服务发送请求的nginx服务。