In the docker folder, create the following subfolder:
mkdir mqtt/config
mkdir mqtt/data
mkdir mqtt/log
Create config file:
nano /opt/docker/mqtt/config/mosquitto.conf
# Plain MQTT listener
listener 1883
allow_anonymous true
# Persistence settings
persistence true
persistence_location /mqtt/data/
# Logging
log_dest file /mqtt/log/mosquitto.log
Create yml file:
nano /opt/docker/mqtt/docker-compose.yml
version: '3.8'
services:
mosquitto:
image: eclipse-mosquitto:latest
container_name: mosquitto
restart: unless-stopped
ports:
- "1883:1883"
- "9001:9001"
volumes:
- ./config:/mosquitto/config
- ./data:/mosquitto/data
- ./log:/mosquitto/log
Run the service
cd /opt/docker/mqtt
docker compose up -d