Portainer nie działa po aktualizacji Dockera – najszybsze rozwiązanie
Portainer nie działa po aktualizacji Dockera – najszybsze rozwiązanie:
Po aktualizacji systemu lub Dockera (szczególnie do wersji Docker Engine 29) wielu administratorów zauważa, że Portainer uruchamia się poprawnie, można się do niego zalogować, ale nie da się zarządzać lokalnym środowiskiem Docker.
W interfejsie Portainera pojawia się wtedy komunikat:
Failed loading environment
The environment named local is unreachable
W tym artykule pokazuję najszybsze i najprostsze rozwiązanie, które pozwala przywrócić działanie Portainera bez cofania Dockera ani systemu operacyjnego.
Dlaczego Portainer przestaje działać po aktualizacji Dockera?
Od wersji Docker Engine 29 demon Dockera wymusza minimalną wersję API na poziomie 1.44. Problem polega na tym, że aktualna wersja Portainer CE wciąż korzysta ze starszej wersji Docker API.
Efekt jest następujący:
- Docker działa poprawnie
- Kontener Portainera uruchamia się bez błędów
- Portainer nie może połączyć się z lokalnym Dockerem
To powoduje, że środowisko local jest oznaczone jako niedostępne.
Najprostsze i najszybsze rozwiązanie problemu
Rozwiązaniem jest obniżenie minimalnej wersji Docker API, którą demon Dockera akceptuje od klientów takich jak Portainer.
Wykonuje się to poprzez edycję pliku konfiguracyjnego Dockera:
Krok 1: Edycja pliku /etc/docker/daemon.json
Na hoście (Debian, Ubuntu, Raspberry Pi OS) otwórz plik:
sudo nano /etc/docker/daemon.json
Jeżeli plik nie istnieje, utwórz go i wklej:
{
"min-api-version": "1.24"
}
Jeżeli plik już istnieje (np. zawiera data-root), dopisz nową linię, zachowując poprawną składnię JSON:
{
"data-root": "/var/lib/docker",
"min-api-version": "1.24"
}
Uwaga: brak przecinka między wpisami spowoduje, że Docker nie uruchomi się.
Krok 2: Restart Dockera
sudo systemctl daemon-reload
sudo systemctl restart docker
Sprawdź, czy Docker działa poprawnie:
docker ps
Krok 3: Restart Portainera
docker restart portainer
Po kilku sekundach odśwież interfejs Portainera w przeglądarce.
Efekt końcowy
Po wykonaniu powyższych kroków:
- środowisko local w Portainerze staje się dostępne
- można normalnie zarządzać kontenerami i stackami
- nie ma potrzeby downgrade’u Dockera
Podsumowanie
Problem z Portainerem po aktualizacji Dockera wynika z niezgodności wersji Docker API, a nie z błędnej konfiguracji kontenera.
Dodanie wpisu:
"min-api-version": "1.24"
w pliku /etc/docker/daemon.json jest obecnie najszybszym i najbezpieczniejszym rozwiązaniem, dopóki Portainer nie wprowadzi pełnej kompatybilności z Docker Engine 29.
G