【Docker】Windows11 + WSL2 + Docker で MQTT Brokerを構築する

 Dockerとdocker-composeを使用したMQTT Brokerの構築手順です。

 完成しているソースは以下にあります。

Docker-sample/MQTT-Broker at main · tsuneken5/Docker-sample
Contribute to tsuneken5/Docker-sample development by creating an account on GitHub.

 2024/09/04 起動確認の方法を追記

 2024/09/04 docker-compose.yml を修正

環境

  • ホストOS:Windows 11 23H2
  • ゲストOS:Ubuntu 20.04.5
  • Docker version:20.10.12
  • Docker Compose version:2.10.2

ディレクトリ構成

$ tree --dirsfirst -F
.
├── conf/
│   └── mosquitto.conf
├── ssl/
│   ├── ca.crt
│   ├── server.crt
│   └── server.key
└── docker-compose.yml

証明書の準備

 TLS通信をしたい場合は、下記の記事を参考に証明書を準備してください。

 TLS通信をしない場合は不要です。

docker-compose.ymlの作成

version: "3"
services:
  mqtt:
    image: eclipse-mosquitto:2.0
    ports:
      - 1883:1883
      - 8083:8083
      - 8883:8883
      - 8084:8084
    restart: unless-stopped
    volumes:
      - ./conf:/mosquitto/config
      - ./ssl:/mosquitto/certs
    user: 1000:1000

 TLS通信が不要な場合は7, 9, 13行目は削除してください。

 204/09/04 restart: unless-stopped を削除しました。

mosquitto.confの作成

allow_anonymous true

listener 1883
protocol mqtt

listener 8083
protocol websockets

listener 8883
protocol mqtt
cafile /mosquitto/certs/ca.crt
keyfile /mosquitto/certs/server.key
certfile /mosquitto/certs/server.crt

listener 8084
protocol websockets
cafile /mosquitto/certs/ca.crt
keyfile /mosquitto/certs/server.key
certfile /mosquitto/certs/server.crt

 TLS通信が不要な場合は、9 – 19行を削除してください。

コンテナの起動

 下記のコマンドでコンテナを起動します。

$ docker-compose up -d

起動確認

 2024/09/04 追記

 こっちでやってます。

コメント

タイトルとURLをコピーしました