我有一个覆盆子pi正在运行一个mosquitto docker容器。此容器包含将数据发送到IOT集线器所需的文件和所有配置。我还有另一个容器data-container
,它执行一些步骤然后需要使用mosquitto docker容器将数据发送到该IOT中心。 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
我还使用data-container
启动了--net=mynetwork
。所以容器都在同一个网络中。现在在data-container
内,它收集了一些信息并使用以下命令发布它:
publish.single("/machine/machine1/, "<data to send>", hostname=<hostname>)
我对在publish.single中hostname
中使用的内容感到困惑。我应该在主机名中提到mosquitto容器的IP地址吗?
由于
答案 0 :(得分:0)
当容器名称部署在同一网络中时,它们很好。确保您可以尝试在容器内exec
并尝试使用容器名称ping
另一个容器。这应该在它们位于同一个docker网络中时起作用。