ブログ

Armadillo Base OS:コンテナ間をネットワーク通信する例(MQTTを使用)

at_kazutaka.bito
2025年5月19日 10時33分

Armadillo Base OSで、コンテナ間をネットワーク通信する例として、ここではMQTTを使ってみます。
下記ブログでMQTT通信を行うコンテナ例がありますが、
これらのブログの例は、Armadilloの外部のネットワーク機器とのMQTT通信を想定し、
MQTTブローカーのホスト名を「ArmadilloのIPアドレス」に設定しています。
  Armadillo Base OS:MQTTブローカーが動くコンテナを作成(ABOSDEで作成)
  Armadillo Base OS:MQTTでパブリッシュするコンテナ例(ABOSDEで作成)
  Armadillo Base OS:MQTTでサブスクライブするコンテナ例(ABOSDEで作成)
  Armadillo Base OS:MQTTブローカー兼サブスクライバーが動くコンテナ例(ABOSDEで作成)

Armadillo Base OSのコンテナ間で、MQTT通信する場合は、
MQTTブローカーのホスト名を「MQTTブローカーのコンテナ名」にします。


ここでは、上記ブログをベースに下記の2つの例で動かします。
 3つのコンテナ(MQTTブローカー、MQTTサブスクライバー、MQTTパブリッシャー)間で通信する場合
 2つのコンテナ(MQTTブローカー兼MQTTサブスクライバー、MQTTパブリッシャー)間で通信する場合

3つのコンテナ(MQTTブローカー、MQTTサブスクライバー、MQTTパブリッシャー)間で通信する場合

MQTTブローカーの作成
Armadillo Base OS:MQTTブローカーが動くコンテナを作成(ABOSDEで作成)
の手順を最後まで実行し、「mqtt_br」コンテナを動かします。

MQTTパブリッシャーの作成
Armadillo Base OS:MQTTでパブリッシュするコンテナ例(ABOSDEで作成)
の手順で「mqtt_pub」コンテナを作成します。
「手順2. MQTTでパブリッシュするコンテナ作成」のmain.shの4行目

MQTT_HOST="192.168.1.10"

の箇所を、下記のようにMQTTブローカーのコンテナ名「mqtt_br」に変更します。

MQTT_HOST="mqtt_br"

以降の手順を最後まで実行し、「mqtt_pub」を動かします。
「手順3. 動作確認」パブリッシュしたメッセージの確認方法で、
パブリッシュしているメッセージ(このブログでは日付)を確認します。

MQTTサブスクライバーの作成
Armadillo Base OS:MQTTでサブスクライブするコンテナ例(ABOSDEで作成)
の手順で「mqtt_sub」コンテナを作成します。
「手順2. MQTTでサブスクライブするコンテナ作成」のmain.shの4行目

MQTT_HOST="192.168.1.10"

の箇所を、下記のようにMQTTブローカーのコンテナ名「mqtt_br」に変更します。

MQTT_HOST="mqtt_br"

以降の手順を最後まで実行し、「mqtt_sub」を動かします。
「手順3. 動作確認」サブスクライブしたメッセージの確認方法で、
サブスクライブしたメッセージ(このブログでは日付)が確認できます。

2つのコンテナ(MQTTブローカー兼MQTTサブスクライバー、MQTTパブリッシャー)間で通信する場合

MQTTパブリッシャーの作成
Armadillo Base OS:MQTTでパブリッシュするコンテナ例(ABOSDEで作成)
の手順で「mqtt_pub」コンテナを作成します。
「手順2. MQTTでパブリッシュするコンテナ作成」のmain.shの4行目

MQTT_HOST="192.168.1.10"

の箇所を、後述で作成するMQTTブローカー兼MQTTサブスクライバーのコンテナ名「mqtt_brsub」に変更します。

MQTT_HOST="mqtt_brsub"

以降の手順を最後まで実行し、「mqtt_pub」を動かします。
「手順3. 動作確認」パブリッシュしたメッセージの確認方法で、
パブリッシュしているメッセージ(このブログでは日付)を確認します。

MQTTブローカー兼MQTTサブスクライバーの作成
Armadillo Base OS:MQTTブローカー兼サブスクライバーが動くコンテナ例(ABOSDEで作成)
の手順を最後まで実行し、「mqtt_brsub」コンテナを動かします。
「手順3. 動作確認」サブスクライブしたメッセージの確認方法で、
サブスクライブしたメッセージ(このブログでは日付)が確認できます。