Introducción
En el post anterior, aprendimos cómo empezar a programar nuestra placa Openmote B haciendo parpadear el LED de nuestra placa.
Aunque en el post anterior aprendimos a hacerlo utilizando la herramienta 'make', en este post utilizaremos Docker, y Docker-compose, para trabajar con contenedores, aunque obteniendo el mismo resultado: el parpadeo del LED onboard de nuestra placa Openmote B.
Últimas publicaciones
OpenMote B es una placa de ultra bajo consumo para desarrollar aplicaciones IoT en el espacio industrial.
Es la referencia del Grupo de Trabajo 6TiSCG del IETF y está respaldada por la implementación más relevante de 6TiSCG de código abierto, incluidos los proyectos Contiki NG y OpenWSN.
Docker
Pero, ¿qué es un contenedor? Un contenedor es un proceso aislado en su máquina que está aislado de todos los demás procesos en la máquina anfitriona. Ese aislamiento aprovecha los espacios de nombres del kernel y los cgroups, características que han estado en Linux durante mucho tiempo. Docker ha trabajado para que estas capacidades sean accesibles y fáciles de usar. En resumen, un contenedor:
es una instancia ejecutable de una imagen. Puedes crear, iniciar, detener, mover o eliminar un contenedor utilizando la DockerAPI o la CLI.
puede ejecutarse en máquinas locales, máquinas virtuales o desplegarse en la nube.
es portátil (puede ejecutarse en cualquier sistema operativo)
Los contenedores están aislados unos de otros y ejecutan su propio software, binarios y configuraciones.
Docker-compose
Compose es una herramienta para definir y ejecutar aplicaciones Docker multicontenedor. Con Compose, utilizas un archivo YAML para configurar los servicios de tu aplicación. Luego, con un solo comando, creas e inicias todos los servicios desde tu configuración.
Compose funciona en todos los entornos: producción, puesta en escena, desarrollo, pruebas, así como flujos de trabajo CI.
El uso de Compose es básicamente un proceso de tres pasos:
Define el entorno de tu aplicación con un archivo Docker para que pueda reproducirse en cualquier lugar.
Define los servicios que componen tu aplicación en docker-compose.yml para que puedan ejecutarse juntos en un entorno aislado.
Ejecuta docker compose up y el comando Docker compose inicia y ejecuta toda tu aplicación. Docker-compose run ejecuta un comando único contra un servicio. Por ejemplo, el siguiente comando inicia el servicio web y ejecuta bash como su comando.
Parpadeo de un LED de la placa
Una vez que conocemos los fundamentos de openmote y docker-compose, ya estamos listos para ejecutar nuestro comando.
1. En primer lugar, vamos a Install Docker-compose on our system >>>
2. A continuación, conectamos la placa openmote al USB de nuestro ordenador. (Las baterías y las antenas no son necesarias)
3. Ir a Our repository >>>y haz clic en el último openmote-fw.tar.bz2 para descargarlo.
4. Una vez descargados, extraiga los archivos.
tar -xvf openmote-fw.tar.bz2
5. Ve al directorio.
cd openmote-fw/
6. Ahora, puedes hacer un cat del archivo docker-compose.yaml:
cat docker-compose.yaml
La salida debería ser la siguiente. Vamos a analizarla:
g. Dispositivos: Es una lista de mapeos de dispositivos. Utiliza el mismo formato que el --device opción de crear un cliente docker.
7. Así que, una vez que sabemos lo que vamos a ejecutar, esto es lo que vamos a hacer:
Vamos a ejecutar el proyecto llamado template, con el servicio docker-compose llamado openmote. Por último, vamos a eliminar el contenedor después de la ejecución con la opción --rm.
docker-compose run --rm openmote template
Uso de Docker para el parpadeo de un LED integrado en el OpenMote B