Instalacja Docker/Moby w Fedora 32

Użytkownicy nowej wersji systemu ze stajni „Czerwonego Kapelusza” napotkają problem przy próbie instalacji Dockera. Nie ma go w najnowszych repozytoriach, podpięcie repo ze strony Dockera skutkuje błędami, podobnie jest ze skryptem instalacyjnym dostępnym na stronie docker.com.
Zagłębiając się szybko w temat, okazuje się, że Docker został usunięty z repozytoriów Fedory (sic! – ja właśnie po to przesiadłem się na Fedorę, by wygodnie korzystać z konteneryzacji!). To dziwne, bo na wielu stronach Fedora jest polecana jako jedna z najwygodniejszych dystrybucji dla deweloperów, devopsów, itp…

OK, przechodząc do sedna – Docker został zastąpiony przez projekt Moby. 🙂

„Docker uses the Moby Project as an open R&D lab.”

Solomon Hykes

Moby jest w pełni zgodny z Dockerem, jest zupełnie wystarczający do codziennej pracy i nauki w prywatnym zakresie.

Ale instalacja w Fedora 32 i wyżej nadal sprawia problemy.
Od wersji 31 Fedora korzysta z nowej wersji cgroups – funkcji kernela służącej do zarządzania procesami.
Docker, a co za tym idzie Moby, nie jest kompatybilny z cgroups v2, dlatego należy przełączyć system na poprzednią implementację (wymagany restart systemu):

$ sudo dnf install grubby
$ sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"
$ sudo systemctl reboot

Po restarcie możemy przystąpić do instalacji Moby’ego :

$ sudo dnf install moby-engine docker-compose

Dodatkowo możemy dorzucić pakiety:
– moby-engine-nano – podświetlenie składni Dockerfile w nano
– moby-engine-vim – podświetlenie składni Dockerfile w vim
– moby-engine-zsh-completion – uzupełnianie poleceń w zsh

Po instalacji aktywujemy daemona systemowego i restartujemy system:

$ sudo systemctl enable docker
$ sudo systemctl reboot

Aby korzystać z dockera na koncie zwykłego użytkownika konfigurujemy odpowiednią grupę:

$ sudo groupadd docker
$ sudo usermod -aG docker $USER

Teraz możemy odpalić nasz pierwszy kontener:

$ docker run hello-world