网络 - 如何将数据从容器发送到同一网络中的 mosquitto 容器

Networking-How to send data from a container to mosquitto container in the same network

我有一个 raspberry pi,它是 运行 一个蚊子 docker 容器。此容器包含文件和将数据发送到 IOT 集线器所需的所有配置。我还有另一个容器 data-container,它执行一些步骤,然后它需要使用 mosquitto docker 容器将数据发送到该物联网集线器。 data-container 有一个 python 代码,它使用 paho-mqtt 库来发布和订阅消息。

我使用以下命令在 docker mynetwork 中创建了自己的网络:

sudo docker network create mynetwork

这创建了网络 mynetwork。然后我通过指定 mynetwork:

启动了 mosquitto 容器
sudo docker run -ti --net=mynetwork --restart=always -v /mosquitto/mqtt/config:/mqtt/config:ro -v /mosquitto/mqtt/log:/mqtt/log -v /mosquitto/mqtt/data/:/mqtt/data/ --name mqtt pascaldevink/rpi-mosquitto

我也开始使用 --net=mynetwork data-container。所以两个容器都在同一个网络中。现在在 data-container 中,它收集了一些信息并使用以下命令发布:

publish.single("/machine/machine1/, "<data to send>", hostname=<hostname>)

我对 publish.single 中的 hostname 使用什么感到困惑。我应该在主机名中提及 mosquitto 容器的 IP 地址吗?

谢谢

当它们部署在同一个网络中时,容器名称就可以了。为确保您可以尝试 exec 在您的容器内并尝试 ping 使用容器名称的其他容器。当它们在同一个 docker 网络中时,这应该有效。