Public Repository

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

rpi-mosquitto

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

Run

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 (https://github.com/toke/docker-mosquitto) 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).

[Unit]
Description=Mosquitto MQTT docker container
Requires=docker.service
Wants=docker.service
After=docker.service

[Service]
Environment=EXT_IP=123.123.123.123
Restart=always
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 127.0.0.1:9001:9001 --name mqtt raphcalvignac/mosquitto:0.3
ExecStop=/usr/bin/docker stop -t 2 mqtt
ExecStopPost=/usr/bin/docker rm -f mqtt

[Install]
WantedBy=local.target
Docker Pull Command
Owner
raphcalvignac

Comments (0)