docker - 使用客户端容器连接到主机上的 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) 在主机上运行的客户端容器。
解决方案
从快速谷歌:
对于 Windows 容器,不使用此组件,并且容器及其端口只能通过 NATed IP 地址访问。
就 BACnet 而言,这会让你陷入痛苦的世界。您必须在容器中使用具有 NAT 支持的 BACnet BBMD 来实现此目的,并且您的 BACnet 客户端必须注册为 BACnet 外部设备。SourceForge 的 BACnet 堆栈似乎有一些 NAT 支持(代码似乎在那里,但我从未以原始形式对其进行过测试)。
因此,您所看到的是“预期的”,但您的解决方案将要求您比以往任何时候都更加熟悉 BACnet BBMD。仔细阅读 BACnet 规范。祝你好运。
推荐阅读
- powershell - 使用 Powershell 将文件上传到 Sharepoint Online (Microsoft 365)(选项 4 - 使用 Microsoft.SharePoint.Client.ClientContext)
- api - Cypress_- 无法加载资源:net::ERR_EMPTY_RESPONSE
- r - 在 R 中,如何将没有相同列的数据框组合到大数据框。谢谢
- ansible - 从 ansible-playbook 获取为 docker-ce 运行的实际命令
- r - 在 R 中找到所有适用的方法
- python - 我如何在相同的场景中使用相同的步骤,但在 pytest-bdd 中使用不同的参数?
- javascript - React Pubnub 聊天。消息复制或根本没有消息
- pandas - 可以使用 np.where 检查向量中的条件,但输出二维数组中的行
- javascript - 在做出另一个请求之前取消上一个请求(如果有的话),同时在反应中使用去抖动
- python - 从python中的嵌套元组中获取值