我正在尝试连接已容器化的BACNET客户端和在主机上运行的BACNET服务器。我在具有Linux容器的Windows 10(主机)上使用Windows的Docker。 我尝试了以下方法:
a。使用run命令发布客户端容器的端口47808。
b。使用network = host运行容器,以访问localhost的服务。
c。尝试使用run命令将网关IP指定为服务器的IP地址。
d。在与服务器相同的子网中运行容器e。使用指定的主机IP和已发布的端口运行容器。 我的bacnet服务器取自https://sourceforge.net/projects/bacnet/,始终连接到DockerNAT 10.0.75.1?知道为什么会这样吗?服务器应用程序不是容器,而是可执行文件。
服务器IP:10.0.75.1(dockerNAT) 客户端容器在主机上运行。
答案 0 :(得分:0)
通过快速的google:
对于Windows容器,不使用此组件,而容器和 它们的端口只能通过NATed IP地址访问。
关于BACnet,这将使您陷入一个痛苦的世界。您必须在容器中使用具有NAT支持的BACnet BBMD才能实现此目的,并且BACnet客户端将必须注册为BACnet外部设备。 SourceForge的BACnet堆栈似乎确实支持NAT(代码似乎已经存在,但我从未以原始形式对其进行过测试)。
因此,您所看到的是“预期的”,但是您的解决方案将要求您对BACnet BBMD的了解要比以往更加熟悉。仔细阅读BACnet规范。祝你好运。