如何代理Docker容器中运行的一个dotnet核心应用程序的每个请求

我正努力从一个web代理运行在docker上的容器代理http请求我的http调用。 我已经通过代理使用bash成功达到了所需的端点

docker exec -i -t 665b4a1e17b6 /bin/bash 

 http_proxy=http://exampleProxy:7777 curl -s http://endpoint 

现在我想从在同一个容器上运行的应用程序中重新创build它

我已经尝试了以下内容:

  1. dotnet核心代理

      loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); app.UseMvc().RunProxy(new ProxyOptions { Scheme = "http", Host = "example", Port = "7777" }); 
  2. 在创build容器时设置http_proxy环境variables

      export http_proxy=http://example:7777 
  3. 使用HttpClientHandler

     var handler = new HttpClientHandler { Proxy = new WebProxy("http://example:777) }; var client = new HttpClient(handler); etc.... 

任何人都可以想到其他方式来设置代理? 或者有关如何debugging的任何build议?

我不是一个dotnet专家,不知道你的应用程序如何运行,所以我只是假设你像一个正常的nginx运行你的应用程序。 我build议你像这样运行你的应用程序sh -c your_app ,这意味着你可以将你的docker cmd设置为sh -c your_app

希望这会解决你的问题。

顺便说一句,这个问题与kubernetes无关,你可能有一个错误的标签;)