Resposta curta: se o CasaOS apresentar subitamente “Falha ao carregar aplicações” após uma atualização do Docker, verifique a versão da API do Docker Engine antes de reinstalar o CasaOS. O Docker 29.0 aumentou a API mínima do daemon para a v1.44, o que interrompeu o funcionamento de clientes mais antigos do CasaOS App Management que ainda solicitavam uma API mais antiga. Posteriormente, o Docker 29.3 reduziu novamente o mínimo para a v1.40, por isso a solução adequada depende da compilação do Docker que está realmente a executar.
Verifique primeiro a versão do Docker
Execute:
versão do Docker
Verifique os campos da versão do servidor e da versão da API. A negociação da API do Docker permite que os clientes e os daemons concordem numa versão comum da API, mas apenas dentro das versões que o daemon ainda aceita.
Esse limite mudou no Docker 29. O Docker 29.0 aumentou a API mínima do daemon para a v1.44. No Docker 29.3.0, o mínimo foi reduzido para a v1.40. Por conseguinte, o limite mínimo da API do Docker 29 depende da versão.
| Versão do Docker | API mínima do motor | O que isto significa para o CasaOS |
|---|---|---|
| 29.0.x–29.2.x | v1.44 | Um cliente antigo do CasaOS App Management pode ser rejeitado por ser demasiado antigo. |
| 29.3.0+ | v1.40 | O limite original da v1.44 já não é o mesmo obstáculo, por isso verifique os registos antes de aplicar uma solução antiga. |
Confirme que a incompatibilidade da API é o erro real
Não presuma que uma App Store vazia seja sempre um problema de compatibilidade com o Docker 29. Verifique o registo do serviço:
journalctl -u casaos-app-management --no-pager -n 100
A falha principal é semelhante a esta:
A versão do cliente 1.43 é demasiado antiga.
A versão mínima da API suportada é a 1.44
Essa mensagem é uma forte indicação de que a falha da interface resulta da compatibilidade com a API do Docker, e não de um problema no catálogo da App Store. Vários relatos do CasaOS reproduziram o mesmo sintoma após atualizações do Docker, incluindo a falha na atualização do Docker original.
Porque o CasaOS pode deixar de funcionar enquanto o próprio Docker continua a funcionar
O CasaOS não substitui o Docker Engine. O serviço de Gestão de Aplicações comunica com o Docker através da API do Engine. Os contentores Docker podem continuar a funcionar normalmente enquanto a interface do CasaOS perde a capacidade de os consultar, criar ou gerir.
É por isso que comandos como:
docker ps
docker images
poderá continuar a funcionar mesmo quando o CasaOS indica que não consegue carregar as aplicações. A CLI do Docker e a Gestão de Aplicações do CasaOS são clientes de API separados e não solicitam necessariamente a mesma versão da API.
A relação mais abrangente entre o CasaOS e o Docker é explicada em Gestão do Docker no CasaOS, onde o CasaOS é utilizado como camada visual sobre aplicações baseadas no Docker.
Corrija instalações mais antigas do Docker 29 com uma substituição da API
Nas compilações do Docker 29 que ainda exigem a API v1.44, uma solução alternativa testada consiste em reduzir o mínimo aceite pelo daemon através do systemd. A correção de compatibilidade do CasaOS indicada utiliza:
sudo systemctl edit docker.service
Adicione:
[Service]
Environment=DOCKER_MIN_API_VERSION=1.24
Em seguida, reinicie o Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
Verifique a substituição:
systemctl show docker | grep DOCKER_MIN_API_VERSION
Trata-se de uma substituição de compatibilidade, não de uma razão para manter indefinidamente o servidor numa pilha de aplicações antiga. Permite deliberadamente que clientes de API mais antigos comuniquem com o daemon.
Verifique se o instalador atual já corrige o problema
Os responsáveis pela manutenção do CasaOS comunicaram posteriormente que o script de instalação foi atualizado para instalar uma versão atual do Docker Engine e aplicar uma substituição de compatibilidade da API do Docker para versões mais recentes. Essa atualização dos responsáveis pela manutenção aparece na atualização da compatibilidade do instalador.
Se a sua instalação do CasaOS for anterior a essa alteração, executar novamente o instalador oficial atual poderá ser mais simples do que manter indefinidamente uma substituição manual. Faça uma cópia de segurança dos dados importantes das aplicações e da configuração personalizada antes de alterar um servidor existente.
Quando não utilizar a solução alternativa antiga
Se versão do Docker indicar o Docker 29.3 ou posterior e a API mínima já ser v1.40, não force cegamente DOCKER_MIN_API_VERSION=1.24. Primeiro, inspecione o registo da Gestão de Aplicações do CasaOS. Um erro diferente requer uma correção diferente.
Por exemplo, falhas de DNS, problemas de acesso ao registo, metadados de aplicações corrompidos ou um serviço do CasaOS parado podem fazer com que a Loja de Aplicações pareça vazia sem que se trate de um problema de versão da API.
Verificar o CasaOS depois da correção
Depois de reiniciar o Docker, verifique as três camadas:
-
Docker:
docker psé executado normalmente. -
Serviço do CasaOS:
systemctl status casaos-app-managementestá ativo e já não regista uma incompatibilidade de API. - Interface Web: as aplicações instaladas e a Loja de Aplicações carregam novamente.
Se o Docker funcionar, mas a Gestão de Aplicações do CasaOS continuar a falhar, reinicie esse serviço depois do Docker:
sudo systemctl restart casaos-app-management
Para os utilizadores que comparam conjuntos de aplicações, a plataforma de aplicações do ZimaOS apresenta o modelo atual de aplicações com instalação num clique. Se pretende uma máquina x86 compacta para testar o Docker e o CasaOS, o ZimaBoard 2 indica oficialmente o CasaOS entre os sistemas operativos compatíveis.
Perguntas frequentes
O Docker 29 causa sempre problemas no CasaOS?
Não. O Docker 29.0 aumentou a API mínima do Engine para v1.44, mas o Docker 29.3.0 baixou-a para v1.40. Verifique a versão exata do Docker e o registo do CasaOS antes de escolher uma solução alternativa.
Porque é que os meus contentores continuam a funcionar?
Os contentores são geridos pelo Docker Engine. A Gestão de Aplicações do CasaOS é um cliente separado. A ligação à API pode falhar enquanto o daemon e os contentores existentes continuam a funcionar.
Devo fazer downgrade do Docker?
Não automaticamente. A substituição da API foi uma solução alternativa bem-sucedida para instalações afetadas do Docker 29, e versões posteriores do Docker alteraram novamente a API mínima. Fazer downgrade é apenas uma opção quando a compatibilidade não pode ser restaurada de forma limpa.
Que registo prova que este é o mesmo problema?
Procure um erro que indique que a API do cliente Docker é demasiado antiga e que o daemon requer a API v1.44 ou posterior. Sem essa evidência, continue a resolver o problema em vez de presumir que se trata do problema do Docker 29.
