Windows主机和Linux Docker容器之间的通信

《Windows主机和Linux Docker容器之间的通信》I有以下问题.我在Windows主机系统上有一个软件,它模拟了这台计算机上的com接口.现在我想在这个软件中提供一个API / Socket / Pipe,它接受一个通过LAN传输的字符串.

提交软件应该是.net核心web应用程序,它作为docker容器(Linux)托管在kubernetes中.

我可以使用哪种技术在Linux容器和Windows主机之间进行交谈.

>命名管道 – >我认为它们不适用于Linux?
>插座?
>尝试在Windows主机上打开网络服务器以通过http访问?

您的想法是什么?为什么您更喜欢解决方案?

最佳答案 Linux确实有命名管道,虽然不同操作的确切语义各不相同,但您遇到的问题是命名管道不能用于不同系统之间的通信.命名管道是在同一台机器上运行的进程的进程间通信.请注意,Windows Host和Linux Guest在此处被视为两个独立的系统,即使它们位于相同的物理计算机中也是如此.

TCP是最通用的套接字形式,是两个操作系统之间连接的标准方法.如果您不知道为什么要使用其他协议,TCP通常是一个很好的选择,它几乎可以连接所有内容.

现在唯一的问题是您要使用的应用程序级协议,以及是否要添加任何安全层(即TLS)来加密和验证计算机之间的连接.如果你有一个只需要传输简单字符串的简单服务,那么你可能只需要直接使用TCP / TLS套接字,但是如果你想从标准化的术语,技术,库和框架中受益,比如沟通请求和响应等各种事情状态,身份验证,乐观锁定,缓存,代理,会话管理,任意长度流编码等,然后在HTTP / HTTPS之上构建您的通信是一件明智的事情.您会发现现在很多服务都是作为Web服务构建的,因为当您需要扩展和使用这些功能时,它会使事情变得更加简单.

点赞