无法订阅Docker Eclipse-Mosquitto Broker

时间:2019-05-24 15:09:50

标签: docker mqtt mosquitto

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

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

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

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

mosquitto_sub -h localhost -t TOPIC

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

1 个答案:

答案 0 :(得分:1)

仅在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标志一起使用。不确定为什么对发布者仍然有必要。