docker-compose.yml
version: "3" services: mosquitto: image: eclipse-mosquitto network_mode: host volumes: - ./conf:/mosquitto/conf - ./data:/mosquitto/data - ./log:/mosquitto/log
Now create conf/mosquitto.conf
persistence true persistence_location /mosquitto/data/ log_dest file /mosquitto/log/mosquitto.log listener 1883 ## Authentication ## # allow_anonymous false password_file /mosquitto/conf/mosquitto.conf
Now create the first user using
docker-compose exec mosquitto mosquitto_passwd -c /mosquitto/conf/mosquitto.passwd mosquitto
You can optionally create more users using the -b
(batch) flag instead of -c
, supplying the password on the command line:
docker-compose exec mosquitto mosquitto_passwd -b /mosquitto/conf/mosquitto.passwd seconduser shoaCh3ohnokeathal6eeH2marei2o
Now start mosquitto using
docker-compose up
or create a systemd service to autostart it.
We are running mosquitto using network_mode: host
. Mosquitto will, by default, listen on port 1883
(MQTT). You can configure more services using conf/mosquitto.conf
, see this StackOverflow post for more info.