Docker Engine 29: Containerd staje się domyślny, eksperymentalne wsparcie dla nftables
Docker Engine 29 ustawia containerd jako domyślne repozytorium obrazów i wprowadza eksperymentalne wsparcie dla nftables w nowoczesnym sieciowaniu Linuksa.
Docker, wiodąca platforma open-source do tworzenia, dystrybucji i uruchamiania aplikacji w kontenerach, oficjalnie wydał Docker Engine 29, koncentrując się na modernizacji i zgodności z szerszym ekosystemem kontenerów.
Najważniejszą zmianą jest to, że magazyn obrazów containerd teraz pełni rolę domyślnego dla wszystkich nowych instalacji. Ta zmiana zastępuje przestarzały backend Dockera graph driver do zarządzania warstwami obrazów. W rzeczywistości nie jest to zaskakujące.
Containerd od dawna stanowi serce warstwy runtime Dockera, ale do tej pory Docker nadal polegał na własnym systemie przechowywania obrazów w zarządzaniu nimi. Wdrożenie magazynu obrazów containerd upraszcza architekturę Dockera poprzez scalenie wykonania i przechowywania, zmniejszenie powielania oraz dostosowanie silnika Docker Engine do platform takich jak Kubernetes, które już korzystają z containerd.
Dla użytkowników ta zmiana przynosi następujące korzyści:
- Uproszczony projekt: Docker Engine teraz używa containerd zarówno do środowiska uruchomieniowego, jak i do przechowywania danych.
- Lepsza interoperacyjność: Zgodność z narzędziami i procesami opartymi na containerd.
- Przyszłe innowacje: Umożliwia nowe funkcje, takie jak optymalizacja snapshotów, leniwe pobieranie i dystrybucja obrazów w trybie peer-to-peer.
Istniejące instalacje będą nadal korzystać z obecnej konfiguracji, ale nowi użytkownicy i świeże instalacje automatycznie przyjmą magazyn obrazów containerd.
Kolejnym godnym uwagi dodatkiem jest eksperymentalne wsparcie dla nftables. Do tej pory Docker Engine polegał na tradycyjnych iptables i ip6tables do zarządzania regułami sieci mostkowej i nakładkowej. Jednak w miarę jak dystrybucje Linuksa stopniowo wycofują iptables, Docker zmierza w stronę nowocześniejszego i bardziej efektywnego frameworka zapory sieciowej.
Po włączeniu, Docker Engine w wersji 29 może teraz tworzyć reguły nftables bezpośrednio, zamiast polegać na tłumaczeniu przez iptables-nft. Użytkownicy mogą przetestować nftables, uruchamiając Dockera za pomocą:
dockerd --firewall-backend=nftablesPamiętaj, że ta funkcja jest wciąż eksperymentalna i nie jest jeszcze zalecana do użytku produkcyjnego. Wsparcie dla Docker Swarm oraz dalsze optymalizacje nftables są planowane w kolejnych wydaniach.
Pod maską, projekt Moby Dockera — otwartoźródłowe jądro stojące za Docker Engine — przeszedł na moduły Go, zastępując swój starszy system zarządzania zależnościami.
Równocześnie, wraz z Docker Engine w wersji 29, minimalna obsługiwana wersja API została podniesiona do 1.44, odpowiadającej Moby w wersji 25. Oznacza to, że starsze klienty Docker (w wersji 25 i starsze) domyślnie nie będą już mogły komunikować się z najnowszą wersją Docker Engine.
Dodatkowo, oprócz wyżej wymienionych zmian, nowa wersja zawiera mnóstwo poprawek błędów i ulepszeń. Szczegóły można znaleźć w pełnym dzienniku zmian lub w notatkach do wydania tej edycji. Oficjalne ogłoszenie znajduje się na blogu Docker.
Użytkownicy Linuksa korzystający z Dockera mogą zaktualizować do wersji 29 poprzez repozytoria swojej dystrybucji. Użytkownicy Docker Desktop otrzymają te zmiany automatycznie w nadchodzących aktualizacjach Docker Desktop.
