Servidor MQTT Mosquitto con Docker

Publicado el 02.03.2025 a las 10:04

Servidor MQTT Mosquitto con Docker

  1. Descargando la imagen de Mosquitto

  2. Levantando el contenedor

  3. Probando la conexión MQTT

  4. Añadiendo autenticación

Servidor MQTT Mosquitto con Docker

Descargando la imagen de Mosquitto

Lo primero que necesitamos es descargar la última versión de la imagen de Mosquitto desde Docker Hub.


Para ello abre tu terminal con privilegios de administrador y ejecuta el siguiente comando:

docker pull eclipse-mosquitto

Levantando el contenedor

Vamos a levantar el contenedor con la imagen de Mosquitto direccionando puertos y dándole un nombre accesible.


docker run -d -p 1883:1883 -p 9001:9001 --name mosquitto eclipse-mosquitto
  • -d: Ejecuta el contenedor en modo "detached" (en segundo plano).
  • -p 1883:1883: Mapeará el puerto 1883 del contenedor al puerto 1883 de tu máquina local (para la conexión MQTT).
  • -p 9001:9001: Mapeará el puerto 9001 del contenedor al puerto 9001 de tu máquina local (para el administrador de MQTT).
  • --name mosquitto: Asignará un nombre a tu contenedor.
  • eclipse-mosquitto: El nombre de la imagen de Docker que queremos utilizar.

Para probar que el está corriendo escribe docker ps.

google sheet

Probando la conexión MQTT

Con una consola de línea de comandos nos vamos a suscribir al topic prueba/fjmduran

docker exec -it mosquitto mosquitto_sub -h localhost -t prueba/fjmduran

Con otra consola de línea de comandos vamos a publicar un mensaje.

docker exec -it mosquitto mosquitto_pub -h localhost -t prueba/fjmduran -m "¡Hola desde MQTT!"
google sheet

Añadiendo autenticación

Primero crearemos un archivo en el contenedor de mosquitto donde guardaremos usuarios y contraseñas.


Para ello, con el contenedor corriendo ejecutamos docker exec -it mosquitto sh para ejecutar comando dentro del contenedor.


No se puede usar bash porque la imagen eclipse-mosquitto es muy ligera y no incluye muchas utilidades como bash.


A continuación crearemos usuario y contraseña:

mosquitto_passwd -c /mosquitto/config/passwd usuario1

Nos pedirá introducir la contraseña.


Podremos ver que se ha creado el archivo.

google sheet

A continuación creamos un archivo mosquitto.conf y en su interior escribimos:

password_file /mosquitto/config/passwd
allow_anonymous false

Hasta luego 🖖

fjmduran.com v 17.0.2