Krótka odpowiedź: jeśli po aktualizacji Dockera CasaOS nagle wyświetla komunikat „Nie udało się załadować aplikacji”, przed ponowną instalacją CasaOS sprawdź wersję API silnika Dockera. Docker 29.0 podniósł minimalną wersję API demona do v1.44, co spowodowało problemy ze starszymi klientami CasaOS App Management, które nadal żądały starszej wersji API. Docker 29.3 ponownie obniżył minimalną wersję do v1.40, dlatego właściwe rozwiązanie zależy od faktycznie używanej kompilacji Dockera.
Najpierw sprawdź wersję Dockera
Uruchom:
wersja dockera
Sprawdź wersję serwera oraz pola wersji API. Negocjowanie API Dockera pozwala klientom i demonom uzgodnić wspólną wersję API, ale tylko w zakresie wersji nadal akceptowanych przez demona.
Ta granica zmieniła się w Dockerze 29. W Dockerze 29.0 minimalna wersja API demona została podniesiona do v1.44. W Dockerze 29.3.0 minimalna wersja została obniżona do v1.40. Minimalna wersja API Dockera 29 zależy więc od wersji.
| Wersja Dockera | Minimalna wersja API silnika | Co to oznacza dla CasaOS |
|---|---|---|
| 29.0.x–29.2.x | v1.44 | Starszy klient CasaOS App Management może zostać odrzucony jako zbyt stary. |
| 29.3.0+ | v1.40 | Pierwotny wymóg wersji v1.44 nie jest już takim samym ograniczeniem, więc przed zastosowaniem starego obejścia sprawdź dzienniki. |
Potwierdź, że rzeczywistym błędem jest niezgodność API
Nie zakładaj, że każdy pusty App Store jest problemem zgodności z Dockerem 29. Sprawdź dziennik usługi:
journalctl -u casaos-app-management --no-pager -n 100
Kluczowy błąd wygląda tak:
Wersja klienta 1.43 jest zbyt stara.
Minimalna obsługiwana wersja API to 1.44
Ten komunikat jest mocnym dowodem na to, że awaria interfejsu wynika z niezgodności z interfejsem API Dockera, a nie z problemu z katalogiem App Store. Wiele zgłoszeń dotyczących CasaOS odtworzyło ten sam objaw po aktualizacjach Dockera, w tym pierwotne zgłoszenie błędu po aktualizacji Dockera.
Dlaczego CasaOS może przestać działać, gdy sam Docker nadal działa
CasaOS nie zastępuje Docker Engine. Usługa zarządzania aplikacjami CasaOS komunikuje się z Dockerem za pośrednictwem interfejsu API silnika. Kontenery Dockera mogą nadal działać prawidłowo, nawet gdy interfejs CasaOS utraci możliwość odpytywania kontenerów, tworzenia ich lub zarządzania nimi.
Dlatego polecenia takie jak:
docker ps
docker images
może nadal działać, nawet gdy CasaOS informuje, że nie może załadować aplikacji. Interfejs wiersza poleceń Dockera i funkcja zarządzania aplikacjami CasaOS to oddzielni klienci API i nie muszą żądać tej samej wersji API.
Szersze omówienie zależności między CasaOS a Dockerem znajduje się w zarządzaniu Dockerem w CasaOS, gdzie CasaOS pełni funkcję wizualnej warstwy nad aplikacjami opartymi na Dockerze.
Napraw starsze instalacje Dockera 29 za pomocą obejścia interfejsu API
W kompilacjach Dockera 29, które nadal wymagają interfejsu API w wersji 1.44, jednym ze sprawdzonych obejść jest obniżenie minimalnej wersji akceptowanej przez demona za pomocą systemd. Zgłoszona poprawka zgodności CasaOS wykorzystuje:
sudo systemctl edit docker.service
Dodaj:
[Service]
Environment=DOCKER_MIN_API_VERSION=1.24
Następnie uruchom ponownie Dockera:
sudo systemctl daemon-reload
sudo systemctl restart docker
Zweryfikuj obejście:
systemctl show docker | grep DOCKER_MIN_API_VERSION
To obejście zgodności, a nie powód, aby bezterminowo pozostawiać serwer na starej wersji stosu aplikacji. Celowo umożliwia starszym klientom API komunikację z demonem.
Sprawdź, czy aktualny instalator już to naprawia
Opiekunowie CasaOS poinformowali później, że skrypt instalacyjny został zaktualizowany tak, aby instalować aktualny Docker Engine i stosować obejście zgodności interfejsu API Dockera dla nowszych wersji. Ta informacja od opiekunów znajduje się w aktualizacji zgodności instalatora.
Jeśli instalacja CasaOS pochodzi sprzed tej zmiany, ponowne uruchomienie aktualnego oficjalnego instalatora może być lepszym rozwiązaniem niż bezterminowe utrzymywanie ręcznego obejścia. Przed wprowadzeniem zmian na istniejącym serwerze wykonaj kopię zapasową ważnych danych aplikacji i niestandardowej konfiguracji.
Kiedy nie używać starego obejścia
Jeśli wersja dockera wskazuje, że Docker ma wersję 29.3 lub nowszą, a minimalna wersja API to już v1.40 — nie wymuszaj jej bez zastanowienia DOCKER_MIN_API_VERSION=1.24. Najpierw sprawdź log CasaOS App Management. Inny błąd wymaga innego rozwiązania.
Na przykład błędy DNS, problemy z dostępem do rejestru, uszkodzone metadane aplikacji lub zatrzymana usługa CasaOS mogą powodować wyświetlanie pustego sklepu z aplikacjami, mimo że problem nie dotyczy wersji API.
Zweryfikuj CasaOS po naprawie
Po ponownym uruchomieniu Dockera sprawdź wszystkie trzy warstwy:
-
Docker: polecenie
docker psdziała normalnie. -
Usługa CasaOS:
systemctl status casaos-app-managementma status aktywny i nie rejestruje już niezgodności wersji API. - Interfejs internetowy: zainstalowane aplikacje i sklep z aplikacjami znów się ładują.
Jeśli Docker działa, ale CasaOS App Management nadal nie działa, po ponownym uruchomieniu Dockera zrestartuj tę usługę:
sudo systemctl restart casaos-app-management
Dla użytkowników porównujących stosy aplikacji platforma aplikacji ZimaOS pokazuje aktualny model aplikacji instalowanych jednym kliknięciem. Jeśli szukasz kompaktowego komputera x86 do testowania Dockera i CasaOS, ZimaBoard 2 jest oficjalnie wymieniony jako zgodny z systemem CasaOS.
FAQ
Czy Docker 29 zawsze powoduje awarię CasaOS?
Nie. Docker 29.0 podniósł minimalną wersję API Engine do v1.44, ale Docker 29.3.0 obniżył ją do v1.40. Przed wyborem obejścia sprawdź dokładną wersję Dockera i log CasaOS.
Dlaczego moje kontenery nadal działają?
Kontenery są zarządzane przez Docker Engine. CasaOS App Management to oddzielny klient. Jego połączenie z API może nie działać, podczas gdy demon i istniejące kontenery nadal działają.
Czy mam obniżyć wersję Dockera?
Nie automatycznie. Wymuszenie wersji API było skutecznym obejściem dla instalacji Dockera 29, których dotyczył ten problem, a późniejsze wydania Dockera ponownie zmieniły minimalną wersję API. Obniżenie wersji to tylko jedna z opcji, gdy nie można przywrócić zgodności w bezpieczny sposób.
Który log potwierdza, że to ten sam problem?
Poszukaj błędu informującego, że API klienta Docker jest zbyt stare, a demon wymaga API w wersji v1.44 lub nowszej. Bez takiego potwierdzenia kontynuuj diagnostykę zamiast zakładać, że chodzi o problem z Dockerem 29.
