RaspberryPi
Installazione di Mosquitto broker in Docker su Raspberry Pi

Installazione di Mosquitto broker in Docker su Raspberry Pi

Far dialogare dispositivi eterogenei, soprattuto nell’ambito dell’IoT e della domotica, é un requisito indispensabile. Mosquitto, é un companion ideale per tutti quelli che vogliono integrare MQTT nel proprio progetto. Vediamo nel dettaglio di cosa si tratta e come possiamo installarlo ed usarlo.

MQTT é un protocollo di comunicazione M2M (machine-to-machine) ed é usatissimo per  mettere in comunicazione, attraverso un sistema publish / subscribe, piú dispositivi, sfruttando una larghezza di banda estremamente ridotta.

In un precedente articolo avevo descritto come integrarlo nativamente su un Raspberry, ma in questo articolo andremo ad installarlo come container all’interno di Docker.

Quindi una volta installato Docker, proseguiamo creando per prima cosa una cartella sul nostro Raspberry Pi, che ci sarà utile sia per eseguire eventuali configurazioni al broker MQTT che per fare i backup di questi settaggi ed infine uno file script necessario alla creazione e configurazione del nostro container, per cui digitiamo:

mkdir docker-mosquitto
nano startMQTT.sh

e riportiamo quanto segue:

docker run --name=mosquitto --restart=always -p 1883:1883 -p 9001:9001 -v ~/docker-mosquitto/:/mosquitto/ -d eclipse-mosquitto

  • la voce --name=mosquitto serve per attribuire il nome al nostro container;
  • la voce --restart=always indica a Docker di avviare in automatico il nostro container e di riavviarlo in caso di problemi;
  • le voci -p 1883:1883 e -p 9001:9001 indicano a Docker di fare il porting delle porte di rete dal Raspberry al container (nel caso dobbiamo creare due container di mosquitto sulla stessa macchina dobbiamo modificare le porte da pubblicare esternamente al nostro Raspberry per cui potremmo adottare una configurazione tipo questa: -p 1884:1883 -p 9002:9001);
  • la voce -v ~/docker-mosquitto/:/mosquitto/ indica a Docker di esporre la cartella mosquitto situata all’interno del container, con cartella docker-mosquitto nel nostro Raspberry Pi (questo settaggio ci potrà essere comodo nel caso dovessimo reinstallare il container MQTT, così da non perdere le cartelle log, data e config);
  • la voce -d indica a Docker di eseguire il container in background
  • mentre l’ultima voce non è altro che il nome dell’immagine da scaricare e installare dal docker hub.

Detto questo, digitiamo CTRL+O per salvare il file, premiamo INVIO per confermare e digitamo CTRL+X per uscire dall’editor nano.

Ora non ci resta che eseguire lo script appena creato per installare il nostro broker MQTT con i settaggi impostati, digitando:

bash startMQTT.sh

Terminato lo script possiamo controllare il contenuto della cartella docker-moquitto e noteremo le cartelle log e data ma , per far si che il borker mqtt memorizzi in modo persistente i log e le configurazioni dobbiamo fare ancora un piccolo passaggio.

Creiamo una cartella denominata config all’interno di docker-mosquitto con i seguenti comandi:

cd ~/docker-mosquitto
sudo mkdir config

fatto ciò creiamo un nuovo file chiamato mosquitto.conf all’interno della cartella appena creata con il seguente comando:

sudo nano config/mosquitto.conf

e riportiamo all’interno quanto segue:

persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
log_dest stdout
listener 1883
allow_anonymous true

Digitiamo CTRL+O per salvare il file, premiamo INVIO per confermare e digitamo CTRL+X per uscire dall’editor nano.

Creato questo file, possiamo riavviare il nostro container con il comando:

docker restart mosquitto

mentre per verificare che il nostro container sia in funzione possiamo eseguire il comando:

docker container ls -a

Buon divertimento!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

%d blogger hanno fatto clic su Mi Piace per questo: