Ir al contenido
JelinaJelina DocumentationDocumentación técnica
Volver al sitio oficial

Aplicaciones en contenedores

JelinaOS incorpora un entorno completo de ejecución de contenedores, Docker, pero su implementación sigue un principio común: se administran mediante versiones (Release), en lugar de ejecutar contenedores manualmente en cada dispositivo. Para producción, se recomienda utilizar el proceso de versiones en todas las aplicaciones: definición, implementación, supervisión, actualización y reversión bajo un control integral.

Crear y publicar imagen → Declarar aplicación en contenedor en una Release → Desplegar en el dispositivo → El agente descarga y ejecuta

Compila la aplicación como imagen de contenedor y envíala a un registro privado de la empresa o a un registro público:

Terminal window
docker build -t registry.example.com/myapp:1.0.0 .
docker push registry.example.com/myapp:1.0.0

Crea una versión en JelinaCloud y añade la aplicación en contenedor:

  • Especifica la dirección de la imagen y su etiqueta de versión; utiliza una versión explícita para evitar actualizaciones inesperadas;
  • Configura las variables de entorno, la asignación de puertos y los volúmenes;
  • Configura la política de reinicio, preferiblemente always, y los límites de recursos.

Implementa la versión en la flota o el dispositivo de destino. El agente realiza automáticamente las siguientes tareas:

  • Descarga la imagen y crea el contenedor;
  • Aplica las variables de entorno, las asignaciones de puertos y los montajes de volúmenes definidos;
  • Inicia el contenedor y lo supervisa continuamente, reiniciándolo tras fallos y recuperándolo al reiniciar el dispositivo.

El sistema de archivos del contenedor se pierde cuando este se vuelve a crear. Monta en la partición de datos la información que deba conservarse:

  • Declara volúmenes para la aplicación en la versión o monta directorios de la partición de datos del dispositivo;
  • Los datos son independientes del ciclo de vida del contenedor y no se ven afectados por actualizaciones o recreaciones.

Los comandos de Docker en el dispositivo se utilizan para consulta y diagnóstico, no para administrar implementaciones:

Terminal window
docker ps # Consultar el estado del contenedor
docker logs <nombre-del-contenedor> # Consultar registros del contenedor
docker events # Seguir eventos del contenedor para diagnóstico
  • Fijar versiones: utiliza etiquetas explícitas de versión de las imágenes;
  • Comprobaciones de estado: configura comprobaciones de estado de los servicios y combínalas con políticas de reinicio para recuperarlos automáticamente;
  • Límites de recursos: establece límites de memoria y CPU para evitar que un contenedor afecte al conjunto del dispositivo;
  • Registro privado: utiliza registros privados en entornos empresariales; el agente gestiona de forma centralizada la distribución de imágenes;
  • Actualización y reversión: actualiza publicando una nueva versión y revierte seleccionando de nuevo la anterior; la nube organiza ambos procesos.

¿Puedo implementar una aplicación ejecutando docker run directamente en el dispositivo? Técnicamente es posible, pero no se recomienda: una aplicación iniciada directamente queda fuera del sistema de versiones y no dispone de supervisión, actualización y reversión unificadas. En producción, impleméntala mediante una versión.

¿Qué ocurre si un contenedor termina de forma inesperada? Si la versión configura restart: always, el agente reinicia automáticamente la aplicación tras una salida anómala.