🐋
DockerでEclipse Mosquittoを動かす
はじめに
DockerでEclipse Mosquitto(MQTTブローカー)を構築します。
以下の環境で実行しました。
※Windows
OS | Windows 11 Home |
メモリ | 16GB |
その他 | Docker Desktopインストール済 |
※Linux(lsb_release -a コマンドで確認)
OS | ubuntu 23.04 |
メモリ | 16GB |
その他 | Docker Desktopインストール済 |
用語集
用語 | 意味 |
---|---|
IoT | (Internet of Things)様々なモノがインターネットに繋がる仕組みのこと |
MQTT | (Message Queueing Telemetry Transport)IoTの通信を行うのに使われるプロトコル。非常に軽量なため低スペックの機器でも通信ができる。 |
MQTTブローカー | IoTデバイスがどのメッセージを送信しているかを判断し、メッセージの中継、多対多の通信を行う。 |
設定ファイルの作成
Eclipse Mosquittoの設定ファイル(mosquitto.conf)を、Windows(またはLinux)のローカルファイルに作成します。
mosquitto.conf
listener 1883
allow_anonymous true
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
Dockerの実行
Windows
設定ファイルはd:\docker\eclipse-mosquitto\mosquitto.conf にある前提とします。
コマンドプロンプトから以下を実行します。(Windowsで起動する場合は、環境ファイルのパスの記述に注意します。)
コマンドプロンプト
docker run -it -p 1883:1883 -p 9001:9001 -v /d/docker/eclipse-mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf -v /mosquitto/data -v /mosquitto/log --name mymosquitto eclipse-mosquitto
Linux
Linuxでホームディレクトリの下に「~/eclipse-mosquitto/mosquitto.conf」のように設定ファイルを作成した場合は、以下のコマンドを実行します。
端末
docker run -it -p 1883:1883 -p 9001:9001 -v ~/eclipse-mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf -v /mosquitto/data -v /mosquitto/log --name mymosquitto eclipse-mosquitto
動作確認
受信側(Subscriber)
受信側の設定をします。以下のコマンドを実行し、Dockerコンテナの中に入ります。
端末
docker exec -it mymosquitto /bin/sh
以下を実行します。メッセージをやり取りするトピックは[test/topic]とします。
/#
mosquitto_sub -t test/topic
送信側(Publisher)
送信側の設定をします。別の端末を起動し、以下のコマンドを実行してDockerコンテナの中に入ります。
端末
docker exec -it mymosquitto /bin/sh
以下を実行します。メッセージをやり取りするトピックは[test/topic]とします。
/#
mosquitto_pub -t test/topic -m 'hello world!'
受信側でhello world!が表示されていればOKです。
下の端末画面では、上が受信側、下が送信側になります。(Linuxの端末画面)
更新履歴
2023/7/22 作成
Discussion