MQTT
Create 3 folders and 3 config files as following
[krit@mini MQTT]$ tree .
.
└── mosquitto
├── config
│ ├── acls.conf
│ ├── mosquitto.conf
│ └── passwd
├── data
└── log
4 directories, 3 files
[krit@mini MQTT]$
In mosquitto.conf, we put following config
[krit@mini MQTT]$ cat mosquitto/config/mosquitto.conf # following two lines required for > v2.0 #allow_anonymous true listener 1883 persistence true persistence_location /mosquitto/data/ log_dest file /mosquitto/log/mosquitto.log allow_anonymous false password_file /mosquitto/config/passwd acl_file /mosquitto/config/acls.conf
We create user 'alice' for Mqtt broker with command
[krit@mini MQTT]$ mosquitto_passwd ./mosquitto/config/passwd alice
With ACL (Access Control List), we allow user to pub/sub to specific topic by
[krit@mini MQTT]$ cat mosquitto/config/acls.conf user admin topic # user alice topic readwrite cat/# user bob topic read gw/+/status/# topic write gw/+/cmd/#
Then, we can run mosquitto with following
[krit@mini MQTT]$ docker run -it --name mosquitto -p 1883:1883 -v $(pwd)/mosquitto:/mosquitto/ eclipse-mosquitto
If we need to add/del/modify any config files in passwd or acls.conf, we just restart the docker with
[krit@mini MQTT]$ docker restart mosquitto
Docker compose
The owner and permission of each file. These file acls.conf and mosquitto.conf
[root@Mosh Mosquitto]# tree .
.
├── docker-compose.yml
└── mosquitto
├── config
│ ├── acls.conf
│ ├── mosquitto.conf
│ └── passwd
├── data
│ └── mosquitto.db
└── log
└── mosquitto.log
4 directories, 6 files
[root@Mosh Mosquitto]# ls -l mosquitto/log/
total 8
-rwxr-xr-x 1 krit krit 5963 Aug 29 11:38 mosquitto.log
[root@Mosh Mosquitto]# ls -l mosquitto/data/
total 4
-rw------- 1 krit krit 47 Aug 29 11:36 mosquitto.db
[root@Mosh Mosquitto]#
docker-compose.yml file should be following. Pls note user: "1000:1000" the number 1000 from command to check your id -u and id -g.
mosquitto:
image: eclipse-mosquitto
hostname: mosquitto
container_name: mosquitto
user: "1000:1000"
ports:
- 1883:1883
- 9001:9001
volumes:
- ./mosquitto/config:/mosquitto/config
- ./mosquitto/log:/mosquitto/log
- ./mosquitto/data:/mosquitto/data
To start run
[krit@Mosh Mosquitto]$ docker-compose up -d
mosquitto_pub to reset null for retain any message on specific topic. -n=Send a null (zero length) message, -r=retain, -d=debug
mosquitto_pub -h hostname -t the/topic -u username -P password -n -r -d
Attachments (2)
- mosquitto.conf (381 bytes) - added by 4 years ago.
- acls.conf (245 bytes) - added by 4 years ago.
Download all attachments as: .zip
![(please configure the [header_logo] section in trac.ini)](/Utils/chrome/site/your_project_logo.png)