Docker image for mosquitto
docker run -ti -p 1883:1883 -p 9001:9001 nijlunsing/mosquitto-armhf
Exposes Port 1883 (MQTT) 9001 (Websocket MQTT)
Alternatively you can use volumes to make the changes persistent and change the configuration.
mkdir -p /srv/mqtt/config/
mkdir -p /srv/mqtt/data/
mkdir -p /srv/mqtt/log/
# place your mosquitto.conf 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
Copy the files from the config directory of this project into /src/mqtt/config. Change them as needed for your particular needs.
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 nijlunsing/mosquitto-armhf
Volumes: /mqtt/config, /mqtt/data and /mqtt/log
Using Docker Volumes for persistence.
Create a named volume:
docker volume create --name mosquitto_data
Now it can be attached to docker by using -v mosquitto_data:/mqtt/data
in the
Example above. Be aware that the permissions within the volumes
are most likely too restrictive.
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
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 mqtt-persistence:/mqtt/data/ -p ${EXT_IP}:1883:1883 -p ${EXT_IP}:8883:8883 -p 127.0.0.1:9001:9001 --name mqtt nijlunsing/mosquitto-armhf
ExecStop=/usr/bin/docker stop -t 2 mqtt
ExecStopPost=/usr/bin/docker rm -f mqtt
[Install]
WantedBy=local.target
git clone https://github.com/toke/docker-mosquitto.git
cd docker-mosquitto
docker build .
docker-mosquitto-armhf was written by:
- Thomas Kerpe | web | mail | GitHub
- With contributions from:
- Andrea Pinazzi
- m0se
- David Medinets
- Gavin de Kock
- Raphael Ahrens
- Harm Jan Nijlunsing
License: BSD 3-Clause