docker - 无法订阅Docker Eclipse-Mosquitto Broker

标签 docker mqtt mosquitto

我启动并运行了eclipse-mosquitto image,也是另一个容器中的发布者,该容器成功连接并发布了。我可以将 shell 程序装入代理容器,并使用mosquitto_sub保留消息,但是当我尝试从本地计算机订阅时,连接被拒绝。

这是我用来启动容器的命令:

docker run --name mqtt --restart=always --net=host -tid  eclipse-mosquitto

使用了--net=host标志,因此我可以在任何地方使用localhost
这就是我尝试订阅的方式,它可以在容器内工作:
mosquitto_sub -h localhost -t TOPIC

是否存在我错过了阻止我从本地计算机订阅的Docker标志或其他选项?还是Docker容器中的订阅者可以工作?

最佳答案

仅在Windows上,必须为特定端口设置发布标志,因此启动代理的正确命令是

docker run --name mqtt -p 1883:1883 -tid eclipse-mosquitto

发布者开始时
docker run -it --net=host mosquitto-pub

然后,只需简单地启动本地计算机上的订户即可
mosquitto_sub -t TOPIC

注意:代理的--net=host标志不能与publish标志一起使用。虽然不确定为什么对发布者仍然有必要。

关于docker - 无法订阅Docker Eclipse-Mosquitto Broker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56295313/

相关文章:

docker - 无法在Docker容器上将mosquitto作为服务启动

unit-testing - 如何使用 GitLab CI 设置 Selenium E2E 测试?

docker - 如何使用初始键值对数据在 docker 上运行 Consul?

Android 和(数百万)推送通知

unit-testing - 如何为 MQTT 客户端编写测试?

c - C 中的 mosquitto 和 SSL/TLS

docker - 更改 Docker 容器中的 ulimit

docker - Ansible:如何使用动态键名设置 docker 容器标签?

android - 无法将数据传递给 Android (Kotlin) 中的另一个 fragment

node.js - 使用 NODE-RED 连接外部 MQTT 发布者