如何将IP路由到Ubuntu的另一个IP?

这里是我的问题:我有一个Linux数据科学虚拟机(Ubuntu) ,将托pipe我的Docker容器。 在这个容器里面我有一个Python脚本运行。 我希望Azure云中的C#客户端与此容器集成。 当它通过XMLRPC请求通过ubuntu ip调用这个脚本的一个函数时,我的主机应该把ip地址redirect到容器的ip:port/ 。 Idk如何做这个ipredirect(或者可能被称为转发/路由?)。 我在互联网上find的最简单的解决scheme是XMLRPC。 有没有人能够帮助我,这也有没有更好的方式,而不是XMLRPC或JSONRPC?

这是我的客户端部分:

 [XmlRpcUrl("http://@UbuntuIP:666/ContainerIP:8000/RPC2")] public interface ICallServer:IXmlRpcProxy { [XmlRpcMethod] string result(string storageAccountName, string containerName,string imageName); } ICallServer icallServerTest = XmlRpcProxyGen.Create<ICallServer>(); var output = icallServerTest.func(params); 

所以,如果我得到这个权利,你有一个C#代码在Azure云中运行,它可以访问你的VM IP。

我假设您的Azure机器能够达到您的虚拟机的IP。 现在,当你在VM中启动你的Python容器时,python服务器将在某个端口上侦听。 假设这个端口是8000 。 您需要的是,您需要启动泊坞窗容器并将此端口发布到主机上

 docker run -d --name my-python-container -p 8000:8000 my-python-image 

现在你有一个可以在你的<UbuntuIP>:8000上访问的服务,所以你可以直接在你的C#代码中使用它。