Risposta breve: se dopo un aggiornamento di Docker CasaOS mostra improvvisamente «Impossibile caricare le app», controlla la versione dell'API di Docker Engine prima di reinstallare CasaOS. Docker 29.0 ha innalzato l'API minima del demone alla v1.44, causando problemi ai client più vecchi di CasaOS App Management, che richiedevano ancora una versione precedente dell'API. Docker 29.3 ha poi abbassato nuovamente il minimo alla v1.40, quindi la soluzione corretta dipende dalla build di Docker effettivamente in esecuzione.
Controlla prima la versione di Docker
Esegui:
versione di Docker
Controlla i campi relativi alla versione del server e alla versione dell'API. La negoziazione dell'API di Docker consente a client e demoni di concordare una versione comune dell'API, ma solo tra quelle ancora accettate dal demone.
Questo limite è cambiato in Docker 29. Docker 29.0 ha innalzato l'API minima del demone alla v1.44. In Docker 29.3.0, il minimo è stato abbassato alla v1.40. Il limite minimo dell'API di Docker 29 dipende quindi dalla versione.
| Versione di Docker | API minima del motore | Cosa significa per CasaOS |
|---|---|---|
| 29.0.x–29.2.x | v1.44 | Un client di CasaOS App Management più vecchio può essere rifiutato perché troppo obsoleto. |
| 29.3.0+ | v1.40 | Il limite minimo originale della v1.44 non è più lo stesso ostacolo, quindi verifica i log prima di applicare una vecchia soluzione alternativa. |
Conferma che l'errore reale sia una mancata corrispondenza dell'API
Non presumere che ogni App Store vuoto sia un problema di compatibilità con Docker 29. Controlla il log del servizio:
journalctl -u casaos-app-management --no-pager -n 100
L'errore principale è simile al seguente:
La versione client 1.43 è troppo vecchia.
La versione minima dell'API supportata è la 1.44
Quel messaggio è una forte indicazione che il problema dell'interfaccia dipende dalla compatibilità con l'API di Docker, non dal catalogo dell'App Store. Diverse segnalazioni su CasaOS hanno riprodotto lo stesso sintomo dopo gli aggiornamenti di Docker, incluso il problema dell'aggiornamento di Docker originale.
Perché CasaOS può smettere di funzionare mentre Docker continua a funzionare
CasaOS non sostituisce Docker Engine. Il servizio Gestione delle app comunica con Docker tramite l'API Engine. I container Docker possono continuare a funzionare normalmente mentre l'interfaccia di CasaOS perde la capacità di interrogarli, crearli o gestirli.
Ecco perché comandi come:
docker ps
docker images
potrebbe continuare a funzionare anche quando CasaOS segnala di non riuscire a caricare le app. La CLI Docker e la Gestione delle app di CasaOS sono client API separati e non richiedono necessariamente la stessa versione dell'API.
Il rapporto più ampio tra CasaOS e Docker è spiegato in Gestione Docker in CasaOS, dove CasaOS viene utilizzato come livello visivo per le applicazioni basate su Docker.
Correggi le installazioni meno recenti di Docker 29 con una sovrascrittura dell'API
Per le build di Docker 29 che richiedono ancora l'API v1.44, una soluzione alternativa testata consiste nell'abbassare il minimo accettato dal demone tramite systemd. La correzione di compatibilità di CasaOS riportata utilizza:
sudo systemctl edit docker.service
Aggiungi:
[Service]
Environment=DOCKER_MIN_API_VERSION=1.24
Quindi riavvia Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
Verifica la sovrascrittura:
systemctl show docker | grep DOCKER_MIN_API_VERSION
Questa è una sovrascrittura di compatibilità, non un motivo per lasciare indefinitamente il server su uno stack applicativo obsoleto. Consente deliberatamente ai client API meno recenti di comunicare con il demone.
Verifica se l'installer attuale ha già risolto il problema
I manutentori di CasaOS hanno in seguito riferito che lo script di installazione è stato aggiornato per installare una versione aggiornata di Docker Engine e applicare una sovrascrittura di compatibilità dell'API Docker per le versioni più recenti. L'aggiornamento dei manutentori è riportato nell'aggiornamento della compatibilità dell'installer.
Se la tua installazione di CasaOS precede questa modifica, eseguire nuovamente l'installer ufficiale attuale potrebbe essere più semplice che mantenere per sempre una sovrascrittura manuale. Esegui il backup dei dati importanti delle app e della configurazione personalizzata prima di modificare un server esistente.
Quando non usare la vecchia soluzione alternativa
Se versione di Docker indica Docker 29.3 o versione successiva e l'API minima è già v1.40: non forzare indiscriminatamente DOCKER_MIN_API_VERSION=1.24. Per prima cosa, controlla il log di CasaOS App Management. Un errore diverso richiede una soluzione diversa.
Ad esempio, errori DNS, problemi di accesso al registry, metadati delle app danneggiati o un servizio CasaOS arrestato possono tutti causare un App Store apparentemente vuoto senza che si tratti di un problema di versione dell'API.
Verifica CasaOS dopo la correzione
Dopo il riavvio di Docker, controlla tutti e tre i livelli:
-
Docker:
docker psrestituisce normalmente l'output. -
Servizio CasaOS:
systemctl status casaos-app-managementè attivo e non registra più una mancata corrispondenza dell'API. - Interfaccia web: le app installate e l'App Store si caricano nuovamente.
Se Docker funziona ma CasaOS App Management continua a non funzionare, riavvia questo servizio dopo Docker:
sudo systemctl restart casaos-app-management
Per gli utenti che confrontano gli stack applicativi, la piattaforma per app ZimaOS mostra l'attuale modello di app con installazione in un clic. Se vuoi un computer x86 compatto per testare Docker e CasaOS, ZimaBoard 2 indica ufficialmente CasaOS tra i sistemi operativi compatibili.
FAQ
Docker 29 causa sempre problemi a CasaOS?
No. Docker 29.0 ha aumentato l'API minima di Engine a v1.44, ma Docker 29.3.0 l'ha ridotta a v1.40. Controlla la versione esatta di Docker e il log di CasaOS prima di scegliere una soluzione alternativa.
Perché i miei container continuano a funzionare?
I container sono gestiti da Docker Engine. CasaOS App Management è un client separato. La connessione API può non riuscire mentre il daemon e i container esistenti continuano a funzionare.
Devo eseguire il downgrade di Docker?
Non automaticamente. La sostituzione dell'API è stata una soluzione alternativa efficace per le installazioni di Docker 29 interessate, mentre le versioni successive di Docker hanno modificato nuovamente l'API minima. Il downgrade è solo un'opzione quando non è possibile ripristinare la compatibilità in modo pulito.
Quale log dimostra che si tratta dello stesso problema?
Cerca un errore che indichi che l'API client di Docker è troppo vecchia e che il daemon richiede l'API v1.44 o più recente. In assenza di questa prova, continua a eseguire la diagnostica invece di presumere che si tratti del problema di Docker 29.
