es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error: Dirección en uso al implementar MQTT 2.0.14 como contenedor utilizando Docker Desktop.

Estoy intentando ejecutar MQTT como un contenedor utilizando Docker Desktop. Sin embargo, según los registros, obtengo un error de “Address in use” al ejecutar el siguiente comando:

mosquitto -c mosquitto.conf

A continuación se muestra mi archivo docker-compose:

version: '3.5'

services:
  mosquitto:
    image: eclipse-mosquitto
    container_name: mosquitto_container
    ports:
      - 1883:1883
    volumes:
      - ./config:/mosquitto/config

Y el archivo mosquitto.conf:

listener 1883 127.0.0.1
allow_anonymous true

En todos los artículos en Internet y también en la documentación de MQTT se menciona que debemos especificar el listener en el archivo de configuración, lo cual he agregado.

Mi objetivo es ejecutar MQTT como un contenedor y luego, desde una utilidad .NET, publicar mensajes en el broker.

Estoy utilizando la versión de Docker v20.10.10 en mi Windows 10 y la versión de la imagen de MQTT es 2.0.14.

Por favor, guíame.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error “Address in use” indica que el puerto 1883 ya está siendo utilizado por otro proceso en tu sistema. Esto podría deberse a otra instancia de mosquitto que se está ejecutando fuera del contenedor o a otra aplicación que está utilizando el mismo puerto.

    Para solucionar el problema, puedes intentar cambiar la asignación de puertos en tu archivo docker-compose para utilizar un puerto de host diferente, por ejemplo:

    ports:
      - 1884:1883
    

    Esto mapeará el puerto 1883 dentro del contenedor al puerto 1884 en tu máquina host.

    Alternativamente, puedes detener el proceso que está utilizando el puerto (si sabes cuál es) o intentar utilizar otro puerto por completo. Asegúrate de actualizar la configuración correspondiente si cambias el número de puerto.

    Una vez que hayas resuelto el conflicto de puertos, puedes ejecutar el siguiente comando para iniciar el contenedor mosquitto:

    docker-compose up -d
    

    Esto iniciará el contenedor en modo desvinculado, lo que significa que se ejecutará en segundo plano. Luego puedes utilizar tu utilidad .NET para publicar mensajes en el broker mosquitto en el puerto especificado.

Comments are closed.