无法订阅 Docker Eclipse-Mosquitto Broker
Can't subscribe to Docker Eclipse-Mosquitto Broker
我有 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
标志不能与发布标志一起使用。不确定为什么发布者仍然需要它。
我有 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
标志不能与发布标志一起使用。不确定为什么发布者仍然需要它。