1. eclipse-mosquitto:2.0.14をプルします。
[root@Tseng-HW ~]# docker pull eclipse-mosquitto:2.0.14
2.0.14: Pulling from library/eclipse-mosquitto
97518928ae5f: Already exists
b491d2bad818: Pull complete
1c67a7209b6c: Pull complete
Digest: sha256:64b7c1729f7d1fff46b5e884fc389071686b2f7ed116c3fc7e17cbcb50fa147e
Status: Downloaded newer image for eclipse-mosquitto:2.0.14
docker.io/library/eclipse-mosquitto:2.0.14
[root@Tseng-HW ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
eclipse-mosquitto 2.0.14 457fe4154880 9 months ago 11.8MB
[root@Tseng-HW ~]#
2. 構成ファイル、データファイル、およびログファイルディレクトリを作成します。
[root@Tseng-HW ~]# mkdir -p /data/mosquitto/config
[root@Tseng-HW ~]# mkdir -p /data/mosquitto/data
[root@Tseng-HW ~]# mkdir -p /data/mosquitto/log
[root@Tseng-HW config]# cd /data/mosquitto/config/
-- 创建配置文件、创建密码文件
[root@Tseng-HW config]# vim mosquitto.conf
[root@Tseng-HW config]# vim userpass.conf
[root@Tseng-HW config]# ls
mosquitto.conf userpass.conf
mosquitto.conf 設定ファイル
listener 1883
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
password_file /mosquitto/config/userpass.conf
per_listener_settings false
allow_anonymous false
3. コンテナを起動します
[root@Tseng-HW mosquitto]# docker run -d --name eclipse-mosquitto -v /data/mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf -v /data/mosquitto/config/userpass.conf:/mosquitto/config/userpass.conf -v /data/mosquitto/data:/mosquitto/data -v /data/mosquitto/log:/mosquitto/log -p 20011:1883 eclipse-mosquitto:2.0.14
68ab8f107a90dfc4943258a45b550379474b769a2228ddab4a26547c605dbe85
[root@Tseng-HW mosquitto]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
68ab8f107a90 eclipse-mosquitto:2.0.14 "/docker-entrypoint.…" 11 seconds ago Up 9 seconds 0.0.0.0:20011->1883/tcp, :::20011->1883/tcp eclipse-mosquitto
[root@Tseng-HW mosquitto]#
4. コンテナに入り、パスワードを設定します(パスワード設定成功後、コンテナを再起動します) パスワードの長さに注意してください、長すぎると失敗する可能性があります。
[root@Tseng-HW mosquitto]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
68ab8f107a90 eclipse-mosquitto:2.0.14 "/docker-entrypoint.…" 13 minutes ago Up 13 minutes 0.0.0.0:20011->1883/tcp, :::20011->1883/tcp eclipse-mosquitto
[root@Tseng-HW mosquitto]# docker exec -it 68ab sh
/ # mosquitto_passwd -b mosquitto/config/userpass.conf tseng Tseng@2022
/ # exit
[root@Tseng-HW mosquitto]# cat /data/mosquitto/config/userpass.conf
tseng:$7$101$LGsXChp3eUUNBiPx$D0ctHVj46/Qv0EcM1VOOUxCsxA1K3Gj27sppnndaOJYg21NUmUXK9M6a2OKe8sCHGodkZNC7nKliLp9esNrXyg==
[root@Tseng-HW mosquitto]# docker restart 68ab
68ab
[root@Tseng-HW mosquitto]#
新しいユーザーの追加、ユーザーの削除、操作後のコンテナーの再起動
[root@Tseng-HW ~]# docker exec -it 68ab sh
/ # cat /mosquitto/config/userpass.conf
tseng:$7$101$ZJyWnsIKF4k4v6xs$Jf3oKACgopIpjxSMnPDHlynMOa5h5F8AZjIsCO4Aly9QbVDedlzpYgqaMdOQBUSCtpP07neJyWTDjNKquQkhhg==
# 添加新用户
/ # mosquitto_passwd -b mosquitto/config/userpass.conf tseng1 tseng#2023
/ # mosquitto_passwd -b mosquitto/config/userpass.conf tseng2 tseng#2023
/ # cat /mosquitto/config/userpass.conf
tseng:$7$101$ZJyWnsIKF4k4v6xs$Jf3oKACgopIpjxSMnPDHlynMOa5h5F8AZjIsCO4Aly9QbVDedlzpYgqaMdOQBUSCtpP07neJyWTDjNKquQkhhg==
tseng1:$7$101$WCEf4zBR7JkVZD9F$zCYCjnNJmqIs8Y47s7iSE/jldoFOt7ZwbEEotwdlCDvx4T7U/tmH83kOHrBMc3HFyXLhiGHMfIIk4tkduPo38Q==
tseng2:$7$101$4CqD7hUZSeZWx34/$+/QQNmt0mRwbFh7Dbd9eLDHMmPhqzs9Jd2P8uddOgjB9kb4TxvMKmXvKe7wNycXkJDiN4dh4gw5efI8Q+IZIUg==
## 删除用户
/ # mosquitto_passwd -D mosquitto/config/userpass.conf tseng2
/ # cat /mosquitto/config/userpass.conf
tseng:$7$101$ZJyWnsIKF4k4v6xs$Jf3oKACgopIpjxSMnPDHlynMOa5h5F8AZjIsCO4Aly9QbVDedlzpYgqaMdOQBUSCtpP07neJyWTDjNKquQkhhg==
tseng1:$7$101$WCEf4zBR7JkVZD9F$zCYCjnNJmqIs8Y47s7iSE/jldoFOt7ZwbEEotwdlCDvx4T7U/tmH83kOHrBMc3HFyXLhiGHMfIIk4tkduPo38Q==
/ #
5. テスト (MQTTX テストを使用)
注: MQTT ポートを開きます。
MQTTX ダウンロード アドレス: MQTT X: クロスプラットフォーム MQTT 5.0 デスクトップ クライアント ツール
5.1 サブスクリプションの追加
5.2 メッセージの送信