我正在尝试容器化与IPv6 WPAN网络上的节点通信的应用程序。当我在裸机上运行应用程序时,我可以在网络上进行TX和RX,并且在数据包中的IP地址可以在WPAN上收到匹配节点。在容器中运行时,我可以从节点接收消息,但是消息中的IP地址和端口号与任何节点都不匹配,并且尝试在WPAN上发送TX或ping节点返回为无法访问。 Docker documentation在IPv6上不太亮,所以我不确定是否配置错误。
docker-compose.yml中的我的网络配置
networks:
default:
driver: bridge
enable_ipv6: true
ipam:
driver: default
config:
- subnet: 2001:3984:4989::/64
gateway: 2001:3984:4989::1
容器的端口映射
ports:
- "5000:5000"
- "5683:5683/udp"
容器中运行的服务器发出的CoAP消息中的RX片段
rsinfo: {
address: '::ffff:192.168.80.1',
family: 'IPv6',
port: 51028,
size: 13
},
答案 0 :(得分:0)
我不确定这是否是首选方法(因为它实际上并未桥接WPAN和docker网络),但是我能够通过删除“ networks.default”部分并添加“ network_mode:host”来进行连接。但这引起了一个问题,因为除非我向每个容器添加“ network_mode:host”,否则我无法解析其他容器名称。