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

时间:2017-07-26 14:19:30

标签: azure ubuntu docker ip azure-dsvm

这是我的问题:我有一个用于Linux的数据科学虚拟机(Ubuntu),它将托管我的Docker Container。在这个容器里面我运行了一个Python脚本。我希望Azure Cloud中的C#Client与此容器集成。当它通过XMLRPC请求通过ubuntu ip调用此脚本的函数时,我的主机应该将ip地址重定向到容器的ip:port/。 Idk如何做这个ip重定向(或者可能叫做转发/路由?)。 我在互联网上找到的最简单的解决方案是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);

1 个答案:

答案 0 :(得分:1)

因此,如果我做对了,您就可以在Azure云中运行C#代码,该代码可以访问您的VM IP。

我假设您的Azure计算机能够访问您的VM的IP。现在,当您在VM中启动Python容器时,python服务器将在某个端口上进行侦听。我们假设此端口为8000。您需要的是,您需要启动docker容器并将此端口发布到主机

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

现在您有<UbuntuIP>:8000可访问的服务,因此您可以直接在C#代码中使用该服务。