Solución de Discord

CasaOS no pudo cargar las aplicaciones después de actualizar Docker a la versión 29: cómo solucionarlo

A CasaOS feedback thread surfaced a GitHub issue where Docker updates on Ubuntu caused installed apps to disappear from the CasaOS Web UI.

Respuesta breve: si CasaOS muestra de repente “Failed to load apps” después de actualizar Docker, comprueba la versión de la API del motor de Docker antes de reinstalar CasaOS. Docker 29.0 elevó la API mínima del demonio a la v1.44, lo que rompió clientes antiguos de CasaOS App Management que seguían solicitando una API anterior. Más tarde, Docker 29.3 volvió a reducir el mínimo a la v1.40, así que la solución adecuada depende de la compilación de Docker que estés ejecutando realmente.

Comprueba primero la versión de Docker

Ejecuta:

versión de Docker

Consulta los campos de versión del servidor y de versión de la API. La negociación de la API de Docker permite que los clientes y los demonios acuerden una versión común de la API, pero solo entre las versiones que el demonio siga aceptando.

Ese límite cambió en Docker 29. Docker 29.0 elevó la API mínima del demonio a la v1.44. En Docker 29.3.0, el mínimo se redujo a la v1.40. Por tanto, el límite mínimo de la API de Docker 29 depende de la versión.

Versión de Docker API mínima del motor Qué significa para CasaOS
29.0.x–29.2.x v1.44 Un cliente antiguo de CasaOS App Management puede rechazarse por ser demasiado antiguo.
29.3.0+ v1.40 El límite mínimo original de la v1.44 ya no es el mismo factor bloqueador, así que verifica los registros antes de aplicar una solución antigua.

Confirma que la incompatibilidad de la API es el error real

No des por hecho que todas las App Store en blanco se deben a un problema de compatibilidad con Docker 29. Comprueba el registro del servicio:

journalctl -u casaos-app-management --no-pager -n 100

El fallo principal tiene este aspecto:

La versión del cliente 1.43 es demasiado antigua.
La versión mínima compatible de la API es la 1.44

Ese mensaje es una prueba contundente de que el fallo de la interfaz se debe a la compatibilidad con la API de Docker y no a un problema del catálogo de la App Store. Varios informes de CasaOS reprodujeron el mismo síntoma después de actualizar Docker, incluido el informe original sobre el fallo de actualización de Docker.

Por qué CasaOS puede fallar mientras Docker sigue funcionando

CasaOS no sustituye a Docker Engine. Su servicio de gestión de aplicaciones se comunica con Docker mediante la API de Engine. Los contenedores de Docker pueden seguir ejecutándose con normalidad mientras la interfaz de CasaOS pierde la capacidad de consultarlos, crearlos o administrarlos.

Por eso, comandos como:

docker ps
docker images

puede seguir funcionando incluso cuando CasaOS indica que no puede cargar las aplicaciones. La CLI de Docker y la gestión de aplicaciones de CasaOS son clientes de API independientes y no necesariamente solicitan la misma versión de API.

La relación más amplia entre CasaOS y Docker se explica en Gestión de Docker en CasaOS, donde CasaOS se utiliza como capa visual sobre aplicaciones basadas en Docker.

Corrige las instalaciones antiguas de Docker 29 con una anulación de la API

Para las compilaciones de Docker 29 que todavía requieren la API v1.44, una solución alternativa probada consiste en reducir el mínimo aceptado por el demonio mediante systemd. La solución de compatibilidad de CasaOS indicada utiliza:

sudo systemctl edit docker.service

Añade:

[Service]
Environment=DOCKER_MIN_API_VERSION=1.24

Después, reinicia Docker:

sudo systemctl daemon-reload
sudo systemctl restart docker

Verifica la anulación:

systemctl show docker | grep DOCKER_MIN_API_VERSION

Esta es una anulación de compatibilidad, no un motivo para mantener indefinidamente el servidor en una pila de aplicaciones antigua. Permite deliberadamente que clientes de API antiguos se comuniquen con el demonio.

Comprueba si el instalador actual ya lo soluciona

Posteriormente, los mantenedores de CasaOS informaron de que el script de instalación se actualizó para instalar una versión actual de Docker Engine y aplicar una anulación de compatibilidad de la API de Docker para las versiones más recientes. Esa actualización de los mantenedores aparece en la actualización de compatibilidad del instalador.

Si tu instalación de CasaOS es anterior a ese cambio, volver a ejecutar el instalador oficial actual puede ser más sencillo que mantener indefinidamente una anulación manual. Haz una copia de seguridad de los datos importantes de las aplicaciones y de la configuración personalizada antes de modificar un servidor existente.

Cuándo no usar la solución alternativa antigua

Si versión de Docker muestra Docker 29.3 o una versión posterior y la API mínima ya es v1.40; no la fuerces a ciegas. DOCKER_MIN_API_VERSION=1.24. Primero inspecciona el registro de CasaOS App Management. Un error diferente requiere una solución diferente.

Por ejemplo, los fallos de DNS, el acceso interrumpido al registro, los metadatos de aplicaciones dañados o un servicio de CasaOS detenido pueden hacer que la App Store parezca vacía sin que se trate de un problema de versión de la API.

Verifica CasaOS después de la solución

Después de reiniciar Docker, comprueba las tres capas:

  1. Docker: docker ps se ejecuta con normalidad.
  2. Servicio de CasaOS: systemctl status casaos-app-management está activo y ya no registra una incompatibilidad de API.
  3. Interfaz web: las aplicaciones instaladas y la App Store vuelven a cargarse.

Si Docker funciona, pero CasaOS App Management sigue fallando, reinicia ese servicio después de Docker:

sudo systemctl restart casaos-app-management

Para quienes comparan pilas de aplicaciones, la plataforma de aplicaciones de ZimaOS muestra el modelo actual de aplicaciones con instalación en un clic. Si quieres un equipo x86 compacto para probar Docker y CasaOS, ZimaBoard 2 incluye oficialmente CasaOS entre sus sistemas operativos compatibles.

Preguntas frecuentes

¿Docker 29 siempre provoca que CasaOS deje de funcionar?

No. Docker 29.0 elevó la API mínima de Engine a v1.44, pero Docker 29.3.0 la redujo a v1.40. Comprueba la versión exacta de Docker y el registro de CasaOS antes de elegir una solución alternativa.

¿Por qué mis contenedores siguen funcionando?

Los contenedores son administrados por Docker Engine. CasaOS App Management es un cliente independiente. Su conexión con la API puede fallar mientras el daemon y los contenedores existentes siguen funcionando.

¿Debería degradar Docker?

No automáticamente. La anulación de la API fue una solución alternativa eficaz para las instalaciones afectadas de Docker 29, y las versiones posteriores de Docker volvieron a cambiar la API mínima. La degradación es solo una opción cuando la compatibilidad no puede restablecerse correctamente.

¿Qué registro demuestra que este es el mismo problema?

Busca un error que indique que la API del cliente de Docker es demasiado antigua y que el daemon requiere la API v1.44 o una versión posterior. Sin esa evidencia, sigue investigando en lugar de asumir que se trata del problema de Docker 29.