docker eclipse-mosquitto 仅在本地主机上运行

Mic*_*cht 0 localhost docker mosquitto

我想使用 docker eclipse-mosquitto 只是为了在本地机器上进行通信。mosquitto.conf 需要哪些设置才能使 mosquitto 代理仅在本地主机上可见,而在外部不可见?由于第二个 mosquitto 正在运行,端口 1883 被阻止,我正在使用端口 1884。

这就是我所拥有的:

port 1884
bind_address 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

从外面可以看到。

port 1884
bind_address localhost
Run Code Online (Sandbox Code Playgroud)

给出错误Error: Address not available

绑定到 docker-ip

port 1884
bind_address 172.17.0.1
Run Code Online (Sandbox Code Playgroud)

给出错误Error: Address not available

我能做什么?

har*_*llb 5

你的答案是错误的方法,你应该只--network="host"用于需要打开原始套接字或从本地网络接收广播消息的东西。

正确的答案是不要使用bind_addressmosquitto.conf 文件中的选项,而是使用docker-p选项正确进行端口映射(docs)。

例如

docker run exec -rm -p 127.0.0.1:1884:1884/tcp mosquitto
Run Code Online (Sandbox Code Playgroud)

这里将-p 127.0.0.1:1884:1884容器中的端口 1884 映射到绑定到主机上的环回 ip (127.0.0.1) 的端口 1884。