Public Repository

Last pushed: a year ago
Short Description
MQTT broker mosquitto for Rpi based on resin/rpi-raspbian and toke/docker-mosquitto
Full Description


Docker image for mosquitto adapted to Rpi based on resin/rpi-raspbian:jessie-20160831 and toke/docker-mosquitto


Run the container without configuration nor persistence:
Exposes Port 1883 (MQTT) 9001 (Websocket MQTT)

docker run -ti -p 1883:1883 -p 9001:9001 --name mqtt raphcalvignac/rpi-mosquitto:0.3

Run with data persistence and configuration

Using local directories

Create host directotries to be used as data volumes for configuration persistence:

mkdir -p /srv/mqtt/config/
mkdir -p /srv/mqtt/data/
mkdir -p /srv/mqtt/log/

Copy the mosquitto.conf file from config directory ( in /srv/mqtt/config/

NOTE: You have to change the permissions of the directories to allow the user to read/write to data and log and read from config directory
For TESTING purposes you can use chmod -R 777 /srv/mqtt/*
Better use "-u" with a valid user id on your docker host

Run command

docker run -ti -p 1883:1883 -p 9001:9001 -v /srv/mqtt/config:/mqtt/config:ro -v /srv/mqtt/log:/mqtt/log -v /srv/mqtt/data/:/mqtt/data/ --name mqtt raphcalvignac/rpi-mosquitto:0.3

Using docker volumes

Create a named volume:

docker volume create --name mosquitto_data

Now it can be attached to docker by using -v mosquitto_data:/mqtt/data.
Be aware that the permissions within the volumes are most likely too restrictive.

Start with systemd

As an example this how you run the container with systemd. The example uses a docker volume named mosquitto_data (see above).

Description=Mosquitto MQTT docker container

ExecStart=/usr/bin/docker run -v /srv/mqtt/config:/mqtt/config -v /srv/mqtt/log:/mqtt/log -v mosquitto_data:/mqtt/data/ -p ${EXT_IP}:1883:1883 -p ${EXT_IP}:8883:8883 -p --name mqtt raphcalvignac/mosquitto:0.3
ExecStop=/usr/bin/docker stop -t 2 mqtt
ExecStopPost=/usr/bin/docker rm -f mqtt

Docker Pull Command