跨模块直接通信(通过IP/sockets)

Cross module direct communication (via IP / sockets)

如果我们有两个自定义模块需要通过套接字直接通信,有没有办法知道分配给每个模块的 IP 地址是多少?

阅读 this article 后,我的印象是 azure-iot-edge 网桥可能支持通过模块名称作为主机名来引用 运行 模块。这似乎不起作用。

我想我们正在努力避免必须扫描网络或使用某些本地存储选项并且不想加入主机网络所以任何想法 运行 一个模块如何找到 IP另一个模块应该是 运行?

这是一张显示我正在测试的两个容器的图片。一个容器只是一个高山实例,我可以将控制台连接到它并用来尝试 ping / 访问其他容器。我可以通过 IP 地址 ping,但想通过容器名称 ping。

经过进一步研究这个问题,原来问题是我在部署时使用的 arm32v7 arm 图像有一些问题。其中一个奇怪的地方是容器上的日期是“Sun Jan 0 00:100:4174038 1900”,还有一些其他命令失败了,但应该有效。

我最终切换到安装了 iputils-ping 的 ubuntu 图像,并确认 azuire-iot-edge 网桥允许通过模块名称访问其他容器,其中服务器作为主机名,所以所有不错,按预期工作,用户错误!