#Mosquittoをwindows10上でDockerで動かしてみる
MosquittoはOpenSourceのMQTTブローカーです。この記事ではwindows10上でMosqiuttoのDockerイメージを動かすまでの手順について説明します。
##MosquittoをDockerで動かす理由
Mosquitto自体はWindows上に簡単にインストールして動かすことが出来ます。しかしながらWindows版でWebSocketをサポートするには自分でソースからビルドしないといけないようです。(Macならそのまま使えます)
そこで、Docker Hubで検索してみたところ以下のイメージがあったので、使ってみることにしました。
https://hub.docker.com/_/eclipse-mosquitto
##eclipse-mosquittoの実行
実行に関しては非常に簡単です。以下のコマンドでイメージを取得して実行します。
デフォルトの構成ファイルでは1883ポートでMQTTのポートがオープンします。
docker run -it -p 1883:1883 eclipse-mosquitto
##構成ファイルの指定
デフォルトの構成ではMQTTのみのサポートのため、構成ファイルを指定してwebsocketのリスナーも起動します。今回はローカルにインストールしたMosquittoの構成ファイルの以下の記述を追加しました。
listener 1883
listener 9001
protocol websockets
以上の設定で、MQTTは1883、websocketsは9001のポートを使用するようになります。
起動時に-vオプションで構成ファイルを明示的に指定します。
なお、ファイルの場所は絶対パスで指定しないと駄目なようです。
$ docker run -it -p 1883:1883 -p 9001:9001 -v C:\mosquitto\mosquitto.conf:/mosquitto/config/mosquitto.conf eclipse-mosquitto
実行結果
C:\mosquitto>docker run -it -p 1883:1883 -p 9001:9001 -v C:\mosquitto\mosquitto.conf:/mosquitto/config/mosquitto.conf eclipse-mosquitto
1580886921: mosquitto version 1.6.8 starting
1580886921: Config loaded from /mosquitto/config/mosquitto.conf.
1580886921: Opening websockets listen socket on port 9001.
1580886921: Opening ipv4 listen socket on port 1883.
1580886921: Opening ipv6 listen socket on port 1883.
##まとめ
Dockerを用いることで簡単にローカルでMosquittoを起動することができました。
次のステップとしてDockerイメージをビルドしてIBM Cloud上で動作させたいと思っています。