Mosquitto es un servidor de mensajes de código abierto (con licencia EPL/EDL) que implementa las versiones 5.0, 3.1.1 y 3.1 del protocolo MQTT. Mosquitto es ligero y es adecuado para su uso en todos los dispositivos.
Para este tutorial debemos tener instalada la App Container Station en el NAS.
Paso 1- Crear del Dockerfile y enviar al NAS.
Creamos en nuestro ordenador un fichero al que llamaremos Dockerfile y meteremos lo siguiente:
# En mi caso uso la imagen de Ubuntu para arm64v8
# ya que se corresponde con el procesador de este modelo
FROM arm64v8/ubuntu
RUN apt-get update
RUN apt-get install -y mosquitto mosquitto-clients
# Opcional para ver ip dentro del contenedor
# quita el comentario a continuación
RUN apt-get install -y iproute2 net-tools iputils-ping
expose 1883/tcp
CMD ["/usr/sbin/mosquitto", "-c", "/etc/mosquitto/mosquitto.conf"]
Este archivo lo enviamos al NAS. Sólo tienes que meterlo en alguna carpeta que hayas compartido con en tu NAS.
Paso 2- Crear la imagen desde linea de comandos.
Realizamos una conexión ssh con el NAS.
ssh admin@<ip_del_NAS>
A continuación buscamos donde está el fichero Dockerfile que hemos subido al NAS con este comando:
find / | grep Dockerfile
Nos dirá el lugar donde está el archivo en mi caso devolvió:
> find / | grep Dockerfile
/share/CACHEDEV1_DATA/Compartida_NAS/docker/Dockerfile
find: /proc/12520: No such file or directory
...
Me voy al directorio donde está mi archivo Dockerfile, en mi caso haré (Tú tienes que poner tu directorio):
cd /share/CACHEDEV1_DATA/Compartida_NAS/docker/
A continuación crearé la imagen de Mosquitto:
docker build -t mosquitto .
Paso 3- Crear el contenedor desde en Container Station.
Ahora accedemos al NAS via WEB, abrimos ContainerStation y vamos a Images.
En imagen llamada mosquitto, le damos al signo +
para crear un contenedor. Se nos abrirá una ventana prar crear el contenedor.
Como queremos que tenga una dirección IP que sea vista desde la red local hacemos clic en Advanced Settings->Network
y elegimos Bridge
en Nework Mode. En mi caso le he puesto una dirección IP estática en el rango de mi red
.
Desde que hagamos clic en Create
podremos ver el contenedor ejecutándose en la sección Overview
.
Ya nuestro servicio Mosquitto estará accesible desde la red local.