首页 > 解决方案 > 使用客户端容器连接到主机上的 BACNET 服务器

问题描述

我正在尝试连接已容器化的 BACNET 客户端和在主机上运行的 BACNET 服务器。我在带有 Linux 容器的 Windows 10(主机)上使用 Docker for Windows。我尝试了以下方法:

一个。使用 run 命令发布客户端容器的端口 47808。

湾。使用 network=host 运行容器,以访问 localhost 的服务。

C。尝试使用运行命令将网关 IP 指定为服务器的 IP 地址。

d。在与我的服务器相同的子网中运行容器

e. 使用指定的主机 IP 和发布的端口运行容器。我的 bacnet 服务器,取自https://sourceforge.net/projects/bacnet/总是连接到 DockerNAT,10.0.75.1?知道为什么会这样吗?服务器应用程序不是一个容器,而是一个可执行文件。

服务器 IP:10.0.75.1 (dockerNAT) 在主机上运行的客户端容器。

标签: dockerlinux-containersbacnet

解决方案


从快速谷歌:

对于 Windows 容器,不使用此组件,并且容器及其端口只能通过 NATed IP 地址访问。

就 BACnet 而言,这会让你陷入痛苦的世界。您必须在容器中使用具有 NAT 支持的 BACnet BBMD 来实现此目的,并且您的 BACnet 客户端必须注册为 BACnet 外部设备。SourceForge 的 BACnet 堆栈似乎有一些 NAT 支持(代码似乎在那里,但我从未以原始形式对其进行过测试)。

因此,您所看到的是“预期的”,但您的解决方案将要求您比以往任何时候都更加熟悉 BACnet BBMD。仔细阅读 BACnet 规范。祝你好运。


推荐阅读