テキストコピッド
ホーム >ニュース ドッカー MQTT コンパス

Docker MQTT ServerでIoT制作を効果的に管理

バイ Ponlakshmi


docker mqtt broker

2024年以降、クラウド上で数千万ものIoTアプリケーションが稼働しています。 展開の50%以上 大規模コネクティビティとスケーラビリティを想定したクラウドベースの展開を活用します。 MQTTブローカー IoT導入の唯一のコンポーネントではありません。 Queues のようなコンポーネントはたくさんあります。 データストレージ、データ集計エンジン、AI/ML、監視ツールなど、ソリューションに必要な。 効果的なデータ収集、処理、および相互に話しているアプリケーションのミックスの管理 視覚化は、より良い、シームレスなオーケストレーションを必要とします。 Docker は、このような素晴らしいツールです。 無料およびオープンソース。

MQTTブローカーのDockerコンポーズ

IoT展開のコアコンポーネントは、MQTTの特長 サーバー. . 同じ使い方の2つの方法があります。


  • 中央MQTTブローカーとして使用 - データ交換にのみ利用します。 ザ・オブ・ザ・IoTアプリケーションお問い合わせ 他のクライアントと同様に、Hostアプリケーションはすべてのトピックを購読します ほかのクライアントのようにデータを交換します。
  • 使ってみる別のIoTデータ ストレージ- MQTT アプリケーションが統合されます MQTTの特長 ブローカーまたは後続される MQTTの特長 ブローカーは、アプリケーションとMQTTの間のデータ観点から、より詳細な通信を行います ブローカー。

ドッカーの作成を実行するこれらの方法は、いくつかの構成を除いて、はるかに似ています データストレージまたはバックエンドアプリケーションへの接続。


このセクションでは、Docker MQTT Server 環境をリレーショナルデータベースにデータストレージとして設定できます。 ubuntu ベースの展開をデプロイする例にしました。MQTTブローカーお問い合わせ しかし、これは、 他のオペレーティング システム同様に。


前提条件

  • ログイン
  • ドッカー
  • Mysql - データをデータベースに保存する計画している場合。 指示は MySQL を実行します。 物理的なvm自体。 しかし、それは展開することができます 必要に応じてドッカー内やAmazon RDS型のデータストアを使用することができます。

MySQLの設定

お問い合わせログインデータ永続目的のセクションより物理的な機械で動くため。 以下の手順に従って、MySQL を設定してください。 最初に MySQL Server をインストールする必要があります。



$ sudo apt-getアップデート
$ sudo apt-get インストール -y mysql-server-5.7

MySQL の設定を変更します。 デフォルトでは、mysql は 127.0.0.1 で実行され、ローカルのみを許可します。 接続するアプリケーション セクションやその他のマシンで実行されているアプリケーションで0.0.0.0として変更できます。 ログイン

$ gedit /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0 の

MySQL を再起動すると、変更が有効になります。

$ sudo サービス mysql 再起動

データアクセスの提供:MySQL の root ユーザはローカル マシンを読み込み、書き込むだけにアクセスできる データベースへのデータ。 ルートユーザがセクションからデータにアクセスできるようにする必要があります。 localhost から MySQL コンソールに接続し、次のクエリを実行します。


$ mysql -u ルート -pパスワードを入力してください。
mysql>グラント・オール・プライベート・オン *.* へ ‘root’@’%’ IDENTIFIED BY ‘root’ により . . 豊富な選択を使って;
mysql>FLUSHのプライベート


MySQL サーバは、Ubuntu サーバ上で動作するあらゆるセクションから接続するように設定されています。

Docker MQTT ブローカーの作成

Dockerはubuntuにインストールして、ドッカーイメージを作成する必要があります。MQTTブローカーそして、 また、ドッカー化MQTTブローカーを実行します。 Docker をインストールするには、次のコマンドを実行します。


$ apt-getインストールドッカー。 ログイン

無料MQTTをダウンロード ブローカーUbuntu の場合 /home/ubuntuフォルダーから抽出します。 他のフォルダからアーカイブを抽出している場合は、正しい参照フォルダを使用することを確認してください


お問い合わせ$の解凍 Bevywise_CrystalMQ_Linux.zip

設定の変更MQTTの特長 ブローカー MySQL 接続


$ cd /home/ubuntu/Bevywise/CrystalMQ
$ gedit conf/datastore.conf を編集

DB_SERVER=マイSQL
DBHOST=<mysqlホストIP>
MYSQL_USER= <your mysql ユーザー>
MYSQL_PASSWORD = <mysql db パスワード>

ドッカーファイルを作成する


$ gedit ドッカーファイルから ubuntu

RUN apt-get update &&apt-get install -y \
libexpat1 \
libsqlite3-0 は、
ウィジェット \
ログイン

RUN rm -rf /var/lib/apt/lists/*

ADD ./クリスタルMQ /クリスタルMQ

RUN chmod +x /CrystalMQ/bin/runbroker.sh
RUN chmod +x /CrystalMQ/bin/install_mysql_connector.sh
WORKDIR /クリスタルMQ /ビン

RUN ./install_mysql_connector.sh

展示会情報 1883年 8080 8883 10443 8081

CMD [./runbroker.sh] は、

ドッカーイメージの構築


# ドッカービルド -t mqttroute .

検証&実行 Docker MQTT ブローカー

# ドッカー画像

root@ubuntu #ドッカー画像投稿タグ インテージ ID クリエイトバーチャル サイズ
mqtt 最新 45f7ee9a1ec7 7 秒前 81.15 MB
ubuntu 最新 7feff7652c69 4 週間 前 81.15 MB

docker コマンドで起動します。 次のコマンドは、MQTT Brokerをデーモンプロセスとして実行します。 セキュアモードでMQTTブローカーを実行する予定がある場合は、 ドキュメントセキュアな mqtt サーバーのデプロイ安全なインスタンスを作成し、それをパッケージ化するのに役立ちます ドッカー。


$ドッカー実行 -d --name "enter-container-name" --restart=always -p "8080:8080" "enter-docker-image-name" は、

Note: 8080の代わりに別のポートを使用した場合、上記のコマンドでポート番号を置き換えてください。


以下はダウンロード可能なドッカーです MQTT ブローカーのイメージファイル。必要なすべてのリソースを提供します。 簡単なプロセスで Docker を簡単にセットアップして実行できます。



注意:ダウンロード可能な Docker 画像のセットアップのみがサポート SQLiteデータベースとデータは保存されません。リアルタイムのデータのみを表示できます。


ダウンロード後、次のコマンドを実行してファイルを解凍し、抽出のために準備します。


bzip2 -d ルート.tar.bz2


次に、必要なリソースを Docker システムにロードするために、次のコマンドを実行します。


ドッカーロード -i "file.tar"


次に、次のコマンドで Docker を実行することで進むことができます。


$ドッカー実行 -d --name "enter-container-name" --restart=always -p "8080:8080" "enter-docker-image-name" は、


Note: 8080の代わりに別のポートを使用した場合、上記のコマンドでポート番号を置き換えてください。

ドッカー環境におけるデータストレージとベストプラクティス

MQTTの特長 デフォルトでは、MySQL、MSSQL、PYSQL、SQLITE、Elasticなどのデータベースストレージの数をサポートしています。 お問い合わせ これらのIoTデータストレージは、データストレージ設定ファイル自体で有効にすることができます。 インスタグラム これらの貯蔵に加えて、私達は付加的な貯蔵の条件をを使用してカスタマイズしてもいいですPython MQTTの特長 ブローカーカスタム エクステンションストレージの前に必要な形式にデータを変換します。 これらのカスタムエクステンション また、これらのデータをキューやエンタープライズアプリケーションに接続するために使用できます。


MQTT ブローカーにデータを受信または送信するデータストレージまたはキューまたは他のアプリケーション ドッカーのイメージから配置します。 他のコンポーネントがデータを保存しないキューやアプリケーションの場合、 ドッカーと同様に実行できます。 データベースやビッグデータエンジンに接続すると、 永続ストレージで物理的または仮想サーバー上で実行します。 ストレージをそのまま使用することをお勧めします Amazon RDSなどのサービスで、データの保存性を高めます。


Docker & KubernetesでMQTT Server(IoTプラットフォーム)コンポーネントを実行

ソリューションプロバイダー IoTプラットフォームマルチテナント フレームワークは、マイクロサービスベースのアーキテクチャに基づいています。 フレームワークの各コンポーネントが実行できる ドッカーコンテナで、物理またはVMサーバー上にクラウドまたはオンプレミスにデプロイします。 ドッカー化 コンポーネント MQTT サーバー kubernetes にデプロイできます。 この場合の展開は、 お問い合わせ 機能およびアプリケーション監視を含むコンポーネントの完全な監視スクリップ 配置され、監視することができます Web UI コンソール上での Dev-ops チーム。

Docker が MQTT にどのように役立つか ブローカーの展開?

コンテナ化独立した分離でアプリケーションを実行するのに役立ちます 物理またはVM Server の動作システムMQTT サーバー定義済みの仮想環境で、 より高いレベルの一貫性。 dockerized VM がメモリを消費するにつれて、全体的にアプリケーションは非常にスケーラブルでポータブル. . ドッカーとクベルネの組み合わせは、 複数の VM 間での展開は、単一のオーケストレーションで簡単に管理できます。

MQTT 用の Docker コンポーズ

MQTT デプロイメントのスケーリング

お問い合わせ