Dejar que cada contenedor de laboratorio casero se ejecute 24/7 es un impuesto silencioso en las facturas de electricidad, el ruido del ventilador y el espacio en el que vive la mini PC. Docker estándar no tiene su propio planificador, así que cuando queremos que un contenedor esté activo solo de 7 p.m. a medianoche, o que un trabajo rclone se ejecute a las 3 a.m., recurrimos a una herramienta auxiliar. Esta lista cubre las mejores aplicaciones para programar contenedores Docker en escritorios y hosts de servidores pequeños en 2026, enfocándose específicamente en tareas de inicio, parada y ejecución cron en Windows, macOS y Linux. Seleccionamos herramientas que se mantienen activamente, funcionan con docker-compose simple y (con una excepción) no tienen costo para ejecutarse en casa.
Qué buscar en un planificador Docker
Un buen planificador hace bien una pequeña cosa. Antes de elegir, verifica estos cinco puntos.
- Sintaxis cron que ya conoces. Cron de cinco campos estándar más segundos al estilo Quartz y accesos directos
@every 10mcubren casi todos los horarios reales. - Compatible con Compose y etiquetas. La herramienta debe leer etiquetas de Docker o un archivo de configuración junto a
docker-compose.yaml, para que los horarios vivan en el control de versiones con los stacks a los que pertenecen. - Respeto por las políticas de reinicio. Detener automáticamente un contenedor solo es útil si
restart: unless-stoppedno te causa problemas al arrancar. Busca herramientas que cambien el estado limpiamente. - Visibilidad de registros. Un trabajo programado que falla silenciosamente a las 3 a.m. es peor que no tener ningún trabajo. Los registros de UI web, hooks de Discord o Gotify, o stdout simple a
docker logstodos cuentan. - Pequeña huella. El planificador es la pieza que debe estar activa cuando todo lo demás está abajo. Menos de 50 MB de RAM y un único binario estático es el objetivo.
Comparación rápida
| Aplicación | Mejor para | Se ejecuta como | Licencia | Costo |
|---|---|---|---|---|
| Ofelia | Docker-native cron por etiquetas | Contenedor | MIT | Gratis |
| Chadburn | Fork de Ofelia con recarga de etiquetas en vivo | Contenedor | MIT | Gratis |
| systemd + Compose | Cero dependencias adicionales en Linux | Servicio del host | LGPL | Gratis |
| Cronicle | UI web para trabajos de shell y Docker programados | Contenedor | MIT | Gratis |
| Portainer + SleeperStack | GUI de contenedor completo más inicio/parada programados | Contenedor | Zlib / MIT | Gratis (CE) |
| Kestra | Flujos de trabajo multi-paso que activan contenedores | Contenedor | Apache 2.0 | Gratis (OSS) |
Las aplicaciones
1. Ofelia, el mejor planificador docker-native en general
Ofelia es la herramienta en la que muchos autohospedadores acaban cuando superan el cron del host. Se ejecuta como un único contenedor, lee horarios de etiquetas en los contenedores en los que debe actuar y admite cuatro tipos de trabajos: job-exec (ejecutar un comando dentro de un contenedor en ejecución), job-run (crear un contenedor temporal, ejecutar, salir), job-local (ejecutar en el host de Ofelia) y job-service-run (Swarm). Combina job-run con la imagen de Docker CLI y Ofelia se convierte en un planificador de inicio/parada, activando docker start mycontainer a las 7 p.m. y docker stop mycontainer a medianoche. Los horarios utilizan cron estándar más segundos Quartz y accesos directos @every, y cada ejecución se transmite a docker logs.
Dónde falla: El desarrollo en el repositorio upstream mcuadros/ofelia se ha ralentizado desde 2024, lo que impulsó el fork de Chadburn. Los cambios de etiqueta aún requieren un reinicio del contenedor de Ofelia para recoger nuevos trabajos, y no hay una UI web de primera parte.
Precios:
- Gratis, licencia MIT, código fuente en GitHub.
Plataformas: Linux, macOS, Windows (vía Docker Desktop). El contenedor en sí es linux/amd64 y linux/arm64.
Descargar: Sitio del proyecto · GitHub
Conclusión: Elige Ofelia si los stacks que planifica raramente cambian y deseas el área de superficie más pequeña posible.
2. Chadburn, la mejor opción gratuita activamente mantenida
Chadburn es un fork comunitario de Ofelia (a través de rdelcorro/ofelia) que soluciona los dos pequeños inconvenientes que la mayoría de las personas encuentran en el original. Observa eventos de Docker, por lo que iniciar, detener o reetiquetear un contenedor actualiza su horario sin reiniciar Chadburn. También elimina el requisito de que Chadburn tenga un trabajo ficticio solo para seguir ejecutándose. Las fuentes de configuración son aditivas: un archivo INI y etiquetas de contenedor se fusionan, lo que funciona bien para equipos que mantienen trabajos globales en un repo y trabajos por stack en cada archivo compose.
Dónde falla: Comunidad más pequeña que Ofelia, por lo que menos publicaciones de blog y configuraciones de ejemplo. La UI web es mínima (una página de estado) en lugar de un dashboard completo.
Precios:
- Gratis, licencia MIT, código fuente en GitHub.
Plataformas: Linux, macOS, Windows (vía Docker Desktop). Las mismas imágenes multi-arquitectura que Ofelia.
Descargar: Sitio del proyecto · GitHub
Conclusión: La opción predeterminada para cualquiera que comience de nuevo en 2026, ya que hereda el diseño de Ofelia sin el rastreador de problemas obsoleto.
3. Temporizadores de systemd con Docker Compose, el mejor enfoque de cero contenedores adicionales
En cualquier host Linux, systemd ya viene con el planificador que la mayoría de los homelabbers necesitan. Un par de archivos, stack.service (con ExecStart=docker compose up -d y ExecStop=docker compose down) más stack.timer (con OnCalendar=Mon..Fri 19:00), convierte un stack compose completo en algo que el SO inicia y detiene según lo programado. Debido a que systemd ya se está ejecutando, no hay nada que instalar, monitorear o actualizar. Los registros se envían a journalctl -u stack.service, que la mayoría de los administradores ya leen por otras razones.
Dónde falla: Solo Linux. No hay equivalente en Windows o macOS más allá de tareas programadas o launchd, ambas más engorrosas para contenedores. Administrar más de una docena de temporizadores a mano se vuelve tedioso; un planificador basado en archivos de configuración es mejor a mayor escala.
Precios:
- Gratis, se incluye con todas las distribuciones principales de Linux.
Plataformas: Solo Linux.
Descargar: Sitio del proyecto · Documentación de Docker Compose
Conclusión: La respuesta correcta cuando el host es Linux, el horario es simple y agregar otro contenedor se siente como una ceremonia.
4. Cronicle, la mejor interfaz web para trabajos programados
Cronicle es un planificador de tareas multi-servidor con una interfaz de navegador, políticas de reintentos y seguimiento de registros en tiempo real. No es específico de Docker, que es exactamente el punto: los trabajos son comandos shell, por lo que docker start, docker stop, docker compose restart o docker run --rm alpine sh -c '...' funcionan como acciones programadas de primera clase. El panel de control muestra los próximos tiempos de ejecución, salida en vivo e historial de ejecuciones que persiste después de reinicios, lo que facilita reconstruir fallos a las 3 a.m. a la mañana siguiente.
Dónde falla: Sin configuración basada en etiquetas. Cada horario vive en la UI o archivo de configuración de Cronicle, por lo que evitar desviaciones entre el planificador y el repo compose depende de ti. La configuración predeterminada de servidor único utiliza almacenamiento local del sistema de archivos, que funciona bien para homelab y es incómodo para un clúster.
Precios:
- Gratis, licencia MIT, código fuente en GitHub.
Plataformas: Linux, macOS, Windows (vía Docker Desktop o Node.js).
Descargar: Sitio del proyecto · GitHub
Conclusión: La mejor opción cuando alguien que no sea el administrador del sistema necesita ver si el trabajo de anoche se ejecutó.
5. Portainer con SleeperStack, lo mejor si la GUI ya existe
Portainer Community Edition es el panel web que la mayoría de los autohospedadores ya tienen instalado para iniciar, detener, reiniciar, seguir registros y editar stacks en Docker, Swarm y Kubernetes. No programa eventos del ciclo de vida del contenedor por sí solo. Combinarlo con SleeperStack, un pequeño contenedor complementario que lee etiquetas de Portainer y emite llamadas de inicio o parada según lo programado, cubre la única brecha y mantiene el flujo de trabajo point-and-click. Portainer Business agrega Edge Compute para sitios sin conexión (primeros cinco nodos gratis), pero eso no está relacionado con el trabajo de planificación local.
Dónde falla: Dos partes en movimiento en lugar de una. Si Portainer o el socket de Docker se reinicia, SleeperStack tiene que reconectarse limpiamente; prueba eso una vez antes de confiarle una ventana durante toda la noche.
Precios:
- Portainer CE: gratis, código fuente disponible (licencia Zlib).
- Portainer Business: gratis para los primeros 5 nodos, pago por nodo después.
- SleeperStack: gratis, licencia MIT.
Plataformas: Linux, macOS, Windows (Docker Desktop). Portainer admite arm64 para hosts Raspberry Pi.
Descargar: Sitio del proyecto · GitHub
Conclusión: La opción pragmática para hogares donde más de una persona necesita ver y controlar los contenedores.
6. Kestra, el mejor orquestador de flujos de trabajo para usuarios avanzados
Kestra es un motor de flujo de trabajo completo que habla YAML, y uno de sus tipos de tareas de primera clase es io.kestra.plugin.docker.Run. Eso significa que un flujo de trabajo Kestra programado puede iniciar un contenedor, esperar su salida, capturar los registros, ramificarse en el resultado y luego iniciar otra cosa. Para un hogar con un stack multimedia, una copia de seguridad rclone, una captura de Home Assistant y una poda Restic nocturna, la orquestación a menudo es más valiosa que el horario mismo. Kestra es gratuito y de código abierto bajo Apache 2.0, con un nivel Pro de pago de $25 por mes para grupos de trabajadores y RBAC que la mayoría de los homelabs no necesitarán.
Dónde falla: Kestra es un motor de flujo de trabajo primero y un planificador segundo. Espera Postgres (o H2 integrado para pruebas), y su huella de memoria (aproximadamente 512 MB en caliente) es un orden de magnitud más grande que la de Ofelia. Excesivo para un único contenedor estilo cron.
Precios:
- Edición de código abierto: gratis, Apache 2.0.
- Kestra Cloud Pro: desde $25 por mes.
- Empresa: precios personalizados.
Plataformas: Linux, macOS, Windows (Docker Desktop). Requiere Postgres en producción.
Descargar: Sitio del proyecto · GitHub
Conclusión: Elige Kestra cuando el problema de programación es realmente un problema de flujo de trabajo disfrazado.
Herramientas que confunden con planificadores y lo que realmente hacen
Cuatro nombres aparecen en cada hilo de homelab sobre este tema pero no pertenecen a la lista anterior.
- Watchtower observa registros de imágenes y actualiza contenedores en ejecución cuando aparece una nueva etiqueta. Reinicia, no programa. Úsalo junto a Ofelia, no en su lugar.
- Diun es Watchtower sin actualización automática: notifica cuando una nueva imagen está disponible y deja el contenedor en ejecución solo. Complementario, no un planificador.
- Dockge (por Louis Lam de Uptime Kuma) es un editor y desplegador de stacks Compose con una UI limpia, botones de inicio/parada y terminal integrada. Excelente para conducir Compose diariamente; sin cron.
- Yacht es otra UI web ligera para Docker, enfocada en plantillas. Misma historia: controles manuales, sin planificador.
- Autoheal observa las comprobaciones de salud de Docker y reinicia contenedores que reportan como no saludables. Reacciona al estado, no actúa en el tiempo.
Cualquiera de los cinco combina bien con Ofelia o Chadburn: usa Dockge para escribir el stack, agrega etiquetas de Ofelia, deja que Watchtower mantenga las imágenes frescas.
Cómo elegir el correcto
Si el host es una mini PC Linux y el horario es uno o dos stacks que suben por la noche y bajan a la hora de dormir, usa systemd timers. No hay nada que instalar, nada que actualizar y una llamada systemctl status responde cada pregunta de depuración.
Si más de un contenedor necesita un horario, o los horarios deben vivir junto a los archivos compose en un repo git, ejecuta Chadburn. Ofelia es buena si ya la tienes funcionando; no hay razón para cambiar solo por cambiar, pero las nuevas implementaciones en 2026 deben comenzar con el fork.
Si la persona de guardia para un trabajo roto a las 3 a.m. no es el administrador del sistema, instala Cronicle. La UI web, el historial de ejecuciones y las políticas de reintentos valen el contenedor adicional.
Si el hogar ya vive en Portainer y nadie quiere una segunda UI, agrega SleeperStack y mantén el flujo de trabajo intacto. Si el “horario” es realmente “ejecutar tres cosas en un orden específico y envíame un email si el paso dos falla,” elige Kestra. Y si el objetivo es realmente solo mantener las imágenes de contenedores frescas, eso es Watchtower o Diun, no ninguna herramienta en la lista anterior.
FAQ
¿Cuál es el mejor planificador de contenedores Docker gratuito?
Para la mayoría de las personas, Chadburn es la mejor opción gratuita en 2026. Tiene licencia MIT, se ejecuta como un único contenedor, lee horarios desde etiquetas de Docker junto a los contenedores en los que actúa y recoge cambios de etiquetas sin reiniciar. Ofelia es el mismo diseño e igualmente gratuito; Chadburn es el fork activamente mantenido.
¿Puede Docker programar contenedores para iniciarse y detenerse automáticamente?
No por sí solo. La política de restart integrada de Docker solo decide qué hacer después de que un contenedor salga; no tiene lógica de hora del día. Para iniciar y detener contenedores según lo programado, empareja Docker con un planificador como Ofelia, Chadburn, Cronicle o systemd timers.
¿Tiene Portainer un planificador de contenedores integrado?
No. Portainer Community Edition y Business Edition ofrecen controles manuales de inicio, parada y reinicio más ejecución de stack única, pero ninguno tiene un planificador estilo cron. Para agregar programación, empareja Portainer con SleeperStack o ejecuta Ofelia o Chadburn junto a él.
¿Es Watchtower un planificador de contenedores?
No. Watchtower observa registros de Docker para nuevas etiquetas de imágenes y actualiza contenedores en ejecución cuando aparece una. No tiene sintaxis cron y no puede iniciar o detener un contenedor según lo programado por hora del día. Úsalo junto a un planificador como Ofelia, no como sustituto.
¿Cómo ahorras energía en un host Docker de laboratorio casero?
Las dos mayores ganancias son apagar contenedores que solo necesitas unas pocas horas al día (stacks multimedia, entornos de desarrollo, objetivos de respaldo) y permitir que el host se suspenda entre ventanas programadas. Un planificador como Chadburn o un par de systemd timers maneja el primero; wake-on-LAN más un temporizador systemctl suspend maneja el segundo.
¿Funcionan estas herramientas en Windows y macOS?
Sí. Ofelia, Chadburn, Cronicle, Portainer, Dockge y Kestra se distribuyen como contenedores Linux que funcionan felizmente en Docker Desktop para Windows y macOS. La única excepción es systemd, que solo es Linux; en Windows, Task Scheduler con comandos docker compose es el equivalente más cercano, y en macOS, launchd juega el mismo papel.