Skip to main content

Command Palette

Search for a command to run...

Desplegando ThingsBoard con Docker

Ejercicios Simples para conocer el potencial de Docker Compose

Updated
3 min read
J

¡El café, la fotografía, el manga, los cómics y la tecnología son mis grandes pasiones!

Perfil de Instagram

Magíster en Ingeniería de Sistemas y Computación. Actualmente, instructor de la Facultad de Ingeniería de la Universidad de los Andes.

¿Qué es ThingsBoard?

ThingsBoard es una plataforma IoT de código abierto que permite el desarrollo, gestión y escalado rápido de proyectos IoT. ThingsBoard proporciona una solución IoT lista para usar, ya sea en la nube o en instalaciones locales, que permita la infraestructura del lado del servidor para tus aplicaciones IoT.

ThingsBoard solo es una plataforma de IoT con la que vamos a explorar el potencial de Docker para distribuir y ejecutar aplicaciones en ambientes de nube y on-premises.

Desplegando ThingsBoard con Docker

En su terminal, clone el repositorio que se muestra a continuación:

$ git clone https://github.com/jpadillaa/docker-compose-example
$ cd docker-compose-example

Este repositorio solo contiene un archivo con una especificación de Docker Compose.

version: '3.0'
services:
  mytb:
    restart: always
    image: "thingsboard/tb-postgres"
    ports:
      - "8080:9090"
      - "1883:1883"
      - "7070:7070"
      - "5683-5688:5683-5688/udp"
    environment:
      TB_QUEUE_TYPE: in-memory
    volumes:
      - ~/.mytb-data:/data
      - ~/.mytb-logs:/var/log/thingsboard

Docker Compose es una herramienta que permite definir y gestionar aplicaciones multi-contenedor de forma declarativa. Con Docker Compose, puede describir toda la configuración de sus servicios, como imágenes, volúmenes y variables de entorno, en un archivo único. Esto simplifica la creación, ejecución y administración de aplicaciones complejas que requieren múltiples contenedores interconectados.

Docker Compose facilita la coordinación y orquestación de estos contenedores, permitiéndote definir redes y volúmenes compartidos, así como configurar interacciones entre servicios, todo en un entorno simple y coherente.

La estructura básica de un archivo docker-compose.yml consta de varias secciones que definen cómo se deben ejecutar los servicios en Docker Compose. Aquí hay una breve descripción de cada sección:

  1. Version: Especifica la versión de Docker Compose que se utilizará en el archivo.

  2. Services: Define los servicios que compondrán tu aplicación. Cada servicio representa un contenedor individual y se configura con propiedades como imagen, puertos expuestos, variables de entorno, etc.

  3. Networks: Define las redes a las que se conectarán los servicios. Esto permite la comunicación entre contenedores en diferentes servicios.

  4. Volumes: Opcionalmente, puedes definir volúmenes para persistir datos entre contenedores o mantenerlos fuera de los contenedores.

  5. Environments/Environment: Define las variables de entorno que se pasarán a los contenedores.

  6. Build: Si se requiere, puedes especificar cómo construir imágenes personalizadas a partir de Dockerfiles.

  7. Ports: Define el mapeo de puertos entre el host y los contenedores.

  8. Depends_on: Indica el orden en que se deben iniciar los servicios.

A continuación, vamos a automatizar todo el proceso de despliegue mediante el uso de Docker Compose. Antes de iniciar los contenedores Docker, ejecute los siguientes comandos para crear directorios para el almacenamiento de datos y registros. Estos comandos también cambiarán la propiedad de los directorios recién creados al usuario del contenedor Docker.

El comando chown se utiliza para cambiar el propietario de los directorios, y requiere permisos de sudo.

$ mkdir -p ~/.mytb-data && sudo chown -R 799:799 ~/.mytb-data
$ mkdir -p ~/.mytb-logs && sudo chown -R 799:799 ~/.mytb-logs

Para aprovisionar, ejecute los siguientes comandos para iniciar este Docker Compose directamente:

$ docker compose up -d
$ docker compose logs -f mytb

Después de ejecutar este comando, puedes abrir el navegador en la URL http://{direccion-ip-del-host}:8080. Debería ver la página de inicio de sesión de ThingsBoard. Usa las siguientes credenciales predeterminadas:

Para apagar la aplicación y los contenedores, ejecute el comando:

$ docker compose down

Referencias

More from this blog

The Cloud Stories

47 posts

¡El café, la fotografía, el manga, los cómics y la tecnología son mis grandes pasiones!

Manizaleño, Ingeniero Electrónico & Magíster en Ingeniería de Sistemas.

https://bento.me/jpadilla