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

标签 azure ubuntu docker ip azure-dsvm

这是我的问题:我有一个 适用于 Linux (Ubuntu) 的数据科学虚拟机 它将托管我的 Docker 容器。在这个容器内部,我运行了一个 Python 脚本。我希望 Azure Cloud 中的 C# 客户端与此容器集成。当它通过 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);

最佳答案

因此,如果我做对了,您就有一个在 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# 代码中使用它。

关于azure - 如何在 Ubuntu 中将一个 IP 路由到另一个 IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45329671/

相关文章:

azure - golang COSMOS DB,快速入门,缺少环境变量 AZURE_DATABASE

c# - 使用Azure处理大量数据

azure - 限制Azure功能上的服务器数量(消耗计划)

Azure Function 中的 Azure Redis 触发器

linux - 这个 bash 脚本中的 ldconfig 声明是什么?

linux - 为什么我的 Linux 提示只显示 ">"符号?

docker - 跑 docker 导出

python - 为什么 cron 作业不编译 python 文件?

angular - 无法从kubernetes集群上的 Angular Pod发出服务的GET请求

mysql - 无法连接到在不同计算机上的容器上运行的远程 mySQL 数据库