Jak zainstalować i skonfigurować silnik Docker-Ce/Moby na Fedora 32

Jak zainstalować i skonfigurować silnik Docker-Ce/Moby na Fedora 32

Nawet jeśli rozwinął się Red Hat Podman I Buildah, Jego własne narzędzia do pracy z kontenerami, które mają pewne ważne zalety, takie jak architektura bez demaon, możesz kontynuować korzystanie z oryginalnego oprogramowania Docker na Fedorze. W tym samouczku zbadamy opcje, które mamy w najnowszej wersji dystrybucji, i zobaczymy, jak zastosować potrzebne poprawki, aby Docker działał poprawnie.

W tym samouczku nauczysz się:

  • Jak zainstalować Moby-inżynier
  • Jak zainstalować Docker-CE
  • Jak zastosować obejścia potrzebne do poprawności Dockera na Fedora 32


Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Fedora 32
Oprogramowanie Nie jest potrzebne konkretne oprogramowanie do śledzenia tego samouczka
Inny Uprawnienia do wykonywania zadań administracyjnych
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Moby-inżynier vs Docker-CE

Istnieją dwa sposoby uzyskania Dockera na Fedorze 32: Możemy zainstalować pakiet „Docker” z oficjalnych repozytoriów dystrybucji lub dodać Docker-Ce i zainstaluj stamtąd potrzebne pakiety. Jeśli wybierzemy pierwszą opcję, Moby-silnik Pakiet zostanie zainstalowany w naszej dystrybucji zamiast rzeczywisty doker uwolnienie. Jeśli wybierzemy drugi, otrzymamy najnowszą wersję „Community Edition„ Official ” Docker-Silnik.

Jaka jest różnica między nimi? „Moby” to projekt open source „Upstream” utworzony przez Dockera w celu łatwego rozpowszechniania i podzielenia bazy kodowej na wiele komponentów. Oprogramowanie, które otrzymujemy instalowanie Moby-silnik bezpośrednio z oficjalnego repozytorium Fedora jest pakowane przez dystrybucję na podstawie tego projektu w stanie Docker-Ce (i również Docker-ee - Enterprise Edition) to produkt stworzony przez doker Projekt na tej samej bazie. Oba są wydawane na licencji open source i są bezpłatnie dostępne.

W tym samouczku zobaczymy, jak wykonać instalację Docker-Ce Lub Moby-silnik, Zobaczymy również, jak zastosować poprawki potrzebne do poprawy Dockera w najnowszej wersji Fedory.

Instalowanie Moby-inżynier z oficjalnych repozytoriów

Instalowanie Moby-silnik To najłatwiejszy i najszybszy sposób pracy z kontenerami za pomocą architektury klienta-serwera Docker w dystrybucji. Wszystko, co musimy zrobić, to użyć DNF, Menedżer pakietów Fedora i uruchom następujące polecenie:

$ sudo dnf instalacja Docker Ostatnie metadane wygaśnięcie Kontrola: 1:38:14 temu w dniu 03 maja 2020 02:22:22 pm Cest. Zależności rozwiązane. ================================================== ============================== Pakiet Version Repo Size ======================================= ================================================== =============== Instalowanie: Moby-inżynier x86_64 19.03.8-1.ce.Gitafacb8b.FC32 Fedora 51 M Instalowanie zależności: kontener-Selinux Noarch 2: 2.132.0-1.Aktualizacje FC32 48 K Containerd x86_64 1.3.3-1.Aktualizacje FC32 32 M Libbsd x86_64 0.10.0-2.FC32 Fedora 106 K Libnet x86_64 1.1.6-19.FC32 Fedora 64 K RUNC x86_64 2: 1.0.0-144.dev.Gite6555cc.FC32 Fedora 2.7 m Instalowanie słabych zależności: CRIU x86_64 3.13-5.FC32 Fedora 492 K Podsumowanie transakcji ===================================================================== =================================== Zainstaluj 7 pakietów Całkowity rozmiar pobierania: 86 m Zainstalowany Rozmiar: 314 m Czy to jest w porządku [t/n]: 


Jak widać, nawet jeśli określiliśmy doker Jako pakiet, Moby-silnik wersja 19.03.8-1.ce.Gitafacb8b.FC32 zostanie faktycznie zainstalowany wraz z zależnościami.

Instalowanie Docker-CE

Docker Community Edition (CE) to „oficjalna” wersja Docker, która, jak powiedzieliśmy wcześniej, opiera się na projekcie Moby. Instalowanie na Fedora 32 wymaga więcej kroków. Jeśli wcześniej zainstalowałeś wersję Docker dostępną w repozytoriach Fedora (Moby-Engine), pamiętaj o odinstalowaniu go, uruchamiając następujące polecenie:

$ sudo dnf autoreMove Docker 

Jeśli wcześniej zbudowałeś niektóre obrazy lub utworzone pojemniki lub objętości, nie martw się: Will Conserved.

Gdy jesteśmy pewni, że wcześniej zainstalowane pakiety są usuwane z naszego systemu, możemy dodać Docker-Ce repozytorium naszych źródeł oprogramowania dystrybucyjnego, abyśmy mogli być na bieżąco z przyszłymi wydań. Pierwszą rzeczą, którą musimy zrobić, to pobrać Docker-Ce.Repo plik:

$ curl -o https: // pobierz.doker.com/linux/fedora/Docker-CE.Repo 

Jeśli otworzymy plik z naszym ulubionym edytorem tekstu, zobaczymy, że sekcja jest względna Docker-Ce-Stable jest oznaczony jako włączony:

[Docker-Cce-Stable] Nazwa = Docker CE Stable-$ basearch baseurl = https: // pobierz.doker.com/linux/fedora/$ releasever/$ basearch/stable enabled = 1 gpgcheck = 1 gpgkey = https: // pobierz.doker.com/linux/fedora/gpg 

Kiedy DNF analizuje .Repo plik $ releasever Zmienna jest rozszerzona, jak sama nazwa wskazuje, do wersji wydania dystrybucji, w tym przypadku 32. Ponieważ w momencie pisania nie ma repozytorium Docker-CE wyraźnie poświęconego Fedorze 32, musimy zastąpić tę zmienną wartością statyczną, 31, Poprzednia wersja Fedora. Możemy łatwo wykonać zmianę za pomocą sed Komenda:

# Pamiętaj, aby użyć pojedynczych cytatów! $ sed -i 's/$ releasever/31/g' Docker -ce.Repo 

Z powyższym poleceniem zastąpiliśmy każde wystąpienie $ releasever w pliku z 31. Aby polecenie poprawnie działało, wzór podstawienia musi być zamknięty w pojedynczych cytatach, jak to zrobiliśmy powyżej (lub $ Postać musi zostać ucieknięta).

Jak możesz zauważyć, tylko stabilny Oddział repozytorium jest domyślnie włączony (włączone = 1). Sugeruję, abyś zostawił to w ten sposób, chyba że masz jakieś konkretne wymagania.

Aby DNF używał repozytorium Docker-CE, musimy przenieść .Repo plik do /etc/mniam.repozytorium.D informator:

$ sudo mv docker-ce.repo /etc /yum.repozytorium.D/ 

W tym momencie możemy wydać następujące polecenie, aby zainstalować pakiety Docker-CE, których potrzebujemy:

$ sudo dnf instaluj Docker-Cce Contenerd.IO Docker CE stabilny - x86_64 17 kb/s | 8.9 kb 00:00 Zależności rozwiązane. ================================================== ================================================== ============================== Rozmiar repozytorium architektury pakietu ========================================= ================================================== ================================================== =============== Instalowanie: Containerd.IO x86_64 1.2.13-3.1.FC31 Docker-CE-Stable 23 M Docker-CE x86_64 3:19.03.8-3.FC31 Docker-CE-Stable 23 M Docker-C-CLI x86_64 1:19.03.8-3.FC31 Docker-CE-Stable 39 M Instalowanie zależności: kontener-Selinux Noarch 2: 2.132.0-1.Aktualizacje FC32 48 K Libcgroup x86_64 0.42.2-1.FC32 Fedora 68 K Podsumowanie transakcji ================================================ ================================================== =================================== Zainstaluj 5 pakietów Całkowity rozmiar pobierania: 85 m Zainstalowany Rozmiar: 363 m Czy to jest w porządku [t/n]: 

Potwierdź instalację, aby kontynuować. Zostaniesz również poproszony o przyjęcie nowo zainstalowanego klawisza GPG repozytorium.

Rozpocznij demon Docker

Bez względu na to, czy zainstalowaliśmy Docker-Ce z dedykowanego repozytorium lub Moby-silnik, Po zainstalowaniu pakietów, aby faktycznie pracować z kontenerami, musimy rozpocząć doker Demon i opcjonalnie wytwarzaj, dzięki czemu jest automatycznie uruchamiany podczas rozruchu. Aby wykonać obie operacje, możemy użyć Systemctl polecenie i uruchom:

$ sudo systemctl enable -teraz doker 

W tym momencie mamy w naszym systemie Docker-CE lub Moby-Ingine. Istnieją jednak pewne korekty, które musimy wykonać, aby Docker działał poprawnie w naszej dystrybucji.

Włącz kompatybilność wsteczną dla cgroups

Od fedory 31 dystrybucja sponsorowana przez Red Hat przełącza się Cgroup V2 (Grupy kontrolne) domyślnie. CGroup jest mechanizmem uwzględnionym w jądrze Linux, używanym do organizowania procesów hierarchicznych i odpowiednio rozdzielania zasobów. Docker nie obsługuje jeszcze wersji 2 cgroups, dlatego musimy to wyłączyć. Aby to zrobić, musimy przekazać Systemd.Unified_cgroup_hierarchy = 0 parametr do jądra w rozruchu. Z przywilejami administracyjnymi otwierając /etc/default/grub plik. Powinien mieć treść podobną do tego:

Grub_timeout = 5 Grub_distributor = "$ (sed 's, wydanie .*$ ,, g ' /etc /system-release) "Grub_default = Saved Grub_Disable_Submenu = true Grub_Minal_Output =" Console "Grub_cmdline_linux =" rhgb cichy "GRUB_DISABLE_RECOVERE =" true "Grub_Enable_blscg = true true 

w Grub_cmdline_linux Linia, musimy tylko dodać parametr wspomniany powyżej, aby wyglądał w ten sposób:

Grub_cmdline_linux = "rhgb cichy systemd.Unified_cgroup_hierarchy = 0 ” 

Po zakończeniu zapisz zmodyfikowany plik i odbuduj konfigurację GRUB:

$ sudo grub2 -mkconfig -o/boot/grub2/grub.CFG 

Aby zmiany były skuteczne, musimy ponownie uruchomić maszynę.



Napraw DNS, który nie działa w Docker

Spróbujmy teraz uruchomić bardzo prosty pojemnik na podstawie oficjalnego Busybox obraz. Używamy go do uruchomienia bardzo prostego świst polecenie www.Google.com. To jest wynik:

Sudo Docker Run - -rm -it zapracowany ping -c 3 www.Google.com ping: zły adres www.Google.com ' 

Jak widać, generowany jest błąd. świst Polecenie narzeka na www.Google.com jest złym adresem, ale tak się dzieje, ponieważ rozdzielczość DNS nie działa w pojemniku. Dlaczego tak się dzieje? Kiedy Docker uruchomi się, musi wykonać pewne korekty zapory i używać maskarskiego IP. To zachowanie jest blokowane przez Firewalld, domyślny menedżer zapory instalowany na Fedorze. Najłatwiejszym sposobem rozwiązania problemu jest wyraźne dodanie Docker0 interfejs do zaufany Strefa zapory ogniowej. Możemy to zrobić przez Firewall-CMD pożytek:

$ sudo firewall-cmd --Permanent --zone = trusted --add-interface = Docker0 && sudo firewall-cmd--reload 

W tym momencie, jeśli ponowne ponowne świst Polecenie za pośrednictwem kontenera opartego na zajęciach, powinien działać poprawnie:

$ sudo docker run - -rm -it zapracowany ping -c 3 www.Google.com ping www.Google.com (216.58.198.36): 56 bajtów danych 64 bajtów od 216.58.198.36: SEQ = 0 TTL = 51 Czas = 31.559 MS 64 bajtów od 216.58.198.36: SEQ = 1 TTL = 51 Czas = 30.417 MS 64 bajtów od 216.58.198.36: SEQ = 2 TTL = 51 Czas = 30.154 MS --- www.Google.Statystyka kompingowa --- 3 przesłane pakiety, 3 pakiety Otrzymane, 0% utrata pakietu Min/AVG/MAX = 30.154/30.710/31.559 ms 

Wnioski

W tym samouczku nauczyliśmy się różnicy między Moby-silnik I Docker-Ce I nauczyliśmy się, jak je instalować na Fedorze 32. Widzieliśmy również, jak zastosować dwa poprawki potrzebne do prawidłowego uruchomienia Dockera w dystrybucji. Po przeczytaniu tego artykułu, miejmy nadzieję, należy mieć konfigurację działającą.

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Zainstaluj Docker na Almalinux
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Rzeczy do zainstalowania na Ubuntu 22.04
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Mastering Bash Script Loops
  • Jak zainstalować Kubernetes na wszystkich dystrybucjach Linux
  • Ubuntu 20.04 Przewodnik
  • Wprowadzenie do silników magazynowych MySQL