Jak zainstalować Docker CE na RHEL 8 / Centos 8

Jak zainstalować Docker CE na RHEL 8 / Centos 8

Najnowsza wersja RHEL 8 / Centos 8. Red Hat zbudował własne narzędzia, Buildah I Podman, które mają być zgodne z istniejącymi obrazami Docker i pracą bez polegania na demon, umożliwiając tworzenie kontenerów jako normalnych użytkowników, bez potrzeby specjalnych uprawnień (z pewnymi ograniczeniami: E.G. W momencie pisania nadal nie można mapować portów hosta do kontenera bez uprawnień).

Jednak nadal brakuje niektórych konkretnych narzędzi: odpowiednik Kompozycja dokera, na przykład jeszcze nie istnieje. W tym samouczku zobaczymy, jak zainstalować i uruchomić oryginalny Docker CE na RHEL8 za pomocą oficjalnego repozytorium Docker dla Centos7.

W tym samouczku nauczysz się:

  • Jak włączyć repozytorium Docker-CE na RHEL 8 / Centos 8
  • Jak zainstalować Docker i Docker-Compose na RHEL 8 / Centos 8


Docker zainstalowany na RHEL 8 / Centos 8

Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System RHEL 8 / CENTOS 8
Oprogramowanie Docker wersja 18.09.2
Inny Pozwolenie na uruchomienie polecenia z uprawnieniami root.
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

Co to jest Docker?

Docker to projekt open source, który umożliwia tworzenie i dystrybucję aplikacji w środku pojemniki, które są znormalizowanymi środowiskami, które można łatwo odtworzyć, niezależnie od systemu hosta. Podczas gdy w Red Hat Enterprise Linux 7 Docker został oficjalnie obsługiwany, w nowej wersji tego systemu operacyjnego open source został zastąpiony serią innych narzędzi opracowanych przez sam Red Hat: Buildah I Podman.

Jednak za pomocą zewnętrznego repozytorium nadal można zainstalować Docker CE (Community Edition). W tym samouczku zobaczymy, jak zainstalować to repozytorium; Zauważ jednak, że pierwotnie było to przeznaczone Centos 7 (klon RHEL), a społeczna wersja Docker nie ma oficjalnego wsparcia dla Red Hat Enterprise Linux. Z tego powodu istnieją problemy - omawiamy je poniżej.

Dodanie zewnętrznego repozytorium

Ponieważ Docker nie jest dostępny w RHEL 8 / Centos 8, musimy dodać zewnętrzne repozytorium, aby uzyskać oprogramowanie. W takim przypadku użyjemy oficjalnego repozytorium Docker Ce Centos: jest to, w chwili pisania, jedyny sposób na zainstalowanie Docker CE na RHEL 8 / Centos 8.



DNF Config-Manager narzędzie pozwól nam, między innymi, łatwo włączyć lub wyłączyć repozytorium w naszym rozmieszczeniu. Domyślnie tylko Appstream I baseos Repozytoria są włączone w RHEL8; Musimy dodać i włączyć również Docker-Ce Repo. Wszystko, co musimy zrobić, aby wykonać to zadanie, to uruchomić następujące polecenie:

$ sudo dnf config-manager --add-repo = https: // pobierz.doker.com/linux/centos/docker-ce.Repo

Możemy sprawdzić, czy repozytorium zostało włączone, patrząc na dane wyjściowe następujące polecenie:

$ sudo dnf repolist -v

Powyższe polecenie zwróci szczegółowe informacje o wszystkich włączonych repozytoriach. To właśnie powinieneś zobaczyć w tym momencie:

Repo-ID: Docker-Cce-stabilna nazwa: Docker CE stabilna-x86_64 Repo-revision: 1549905809 Repo-Update: Pon 11 lutego 2019 06:23:29 CET Repo-PKGS: 30 Repo-Size -BaseUrl: https: // pobierz.doker.com/Linux/Centos/7/x86_64/Stable Repo-Expire: 172 800 sekund (S) (Ostatni: poniedziałek 18 lutego 2019 10:23:54 AM CET) Repo-filename: /ttc/yum.repozytorium.D/Docker-Ce.Repo Repo-ID: RHEL-8-FOR-X86_64-APPSTREAM-RPMS-Nazwa: Red Hat Enterprise Linux 8 dla x86_64-AppStream Beta (RPMS) Repo-Revision: 1542158694 Repo-updated: śr. 14 listopada 2018 02:24: 54 AM CET Repo-PKGS: 4594 REPO SIZE: 4.9 g repo-baseurl: https: // cdn.czerwony kapelusz.com/content/beta/rhel8/8/x86_64/appStream/OS Repo-Expire: 86 400 sekund (S) (ostatnie: poniedziałek 18 lutego 2019 10:23:55 CET) repo-filename:/etc/yum.repozytorium.D/Redhat.Repo Repo-ID: RHEL-8-FOR-X86_64-BASEOS-RPMS-Nazwa: Red Hat Enterprise Linux 8 dla x86_64-Baseos Beta (RPMS) Repo-revision: 1542158719 Repo-updated: Środa 14 listopada 2018 02:25: 19 AM CET REPO-PKGS: 1686 REPO SIZE: 925 M repo-baseurl: https: // cdn.czerwony kapelusz.com/content/beta/rhel8/8/x86_64/baseos/os repo-expire: 86 400 sekund (s) (ostatni: poniedziałek 18 lutego 2019 10:23:56 CET) repo-filename:/itp.repozytorium.D/Redhat.Pakiety Repo: 6310 

Instalowanie Docker-CE

Docker-Ce-Stable Repozytorium jest teraz włączone w naszym systemie. Repozytorium zawiera kilka wersji Docker-Ce Pakiet, aby wyświetlić je wszystkie, możemy uruchomić:

$ DNF List Docker-Cce-ShowDuplicates | sort -r docker -ce.x86_64 3:19.03.2-3.EL7 Docker-CE stabilny Docker-CE.x86_64 3:19.03.1-3.EL7 Docker-CE stabilny Docker-CE.x86_64 3:19.03.0-3.EL7 Docker-CE stabilny Docker-CE.x86_64 3:18.09.9-3.EL7 Docker-CE stabilny Docker-CE.x86_64 3:18.09.8-3.EL7 Docker-CE stabilny Docker-CE.x86_64 3:18.09.7-3.EL7 Docker-CE stabilny Docker-CE.x86_64 3:18.09.6-3.EL7 Docker-CE stabilny Docker-CE.x86_64 3:18.09.5-3.EL7 Docker-CE stabilny Docker-CE.x86_64 3:18.09.4-3.EL7 Docker-CE stabilny Docker-CE.x86_64 3:18.09.3-3.EL7 Docker-CE stabilny Docker-CE.x86_64 3:18.09.2-3.EL7 Docker-CE stabilny Docker-CE.x86_64 3:18.09.1-3.EL7 Docker-CE stabilny Docker-CE.x86_64 3:18.09.0-3.EL7 Docker-CE stabilny Docker-CE.x86_64 18.06.3.CE-3.EL7 Docker-CE stabilny Docker-CE.x86_64 18.06.2.CE-3.EL7 Docker-CE stabilny Docker-CE.x86_64 18.06.1.CE-3.EL7 Docker-CE stabilny Docker-CE.x86_64 18.06.0.CE-3.EL7 Docker-CE stabilny Docker-CE.x86_64 18.03.1.CE-1.El7.Centos Docker-CE stabilny Docker-CE.x86_64 18.03.0.CE-1.El7.Centos Docker-CE stabilny Docker-CE.x86_64 17.12.1.CE-1.El7.Centos Docker-CE stabilny Docker-CE.x86_64 17.12.0.CE-1.El7.Centos Docker-CE stabilny Docker-CE.x86_64 17.09.1.CE-1.El7.Centos Docker-CE stabilny Docker-CE.x86_64 17.09.0.CE-1.El7.Centos Docker-CE stabilny Docker-CE.x86_64 17.06.2.CE-1.El7.Centos Docker-CE stabilny Docker-CE.x86_64 17.06.1.CE-1.El7.Centos Docker-CE stabilny Docker-CE.x86_64 17.06.0.CE-1.El7.Centos Docker-CE stabilny Docker-CE.x86_64 17.03.3.CE-1.EL7 Docker-CE stabilny Docker-CE.x86_64 17.03.2.CE-1.El7.Centos Docker-CE stabilny Docker-CE.x86_64 17.03.1.CE-1.El7.Centos Docker-CE stabilny Docker-CE.x86_64 17.03.0.CE-1.El7.Centos Docker-CE-Stable 

Jaka wersja zainstalować? Cóż, wydaje się, że Red Hat w jakiś sposób zablokował instalację kontenerd.io > 1.2.0-3.El7, który jest zależnością Docker-Ce. Z tego powodu po prostu uruchomienie sudo dnf instaluj Docker-CE polecenie, nie zadziała. Jak zobaczymy za minutę, nadal jest możliwe, aby obejść ten problem; raz Docker-Ce jest jednak zainstalowany, kolejny problem staje się widoczny: tak długo Firewalld, System Firewall Manager jest włączony, Rozdzielczość DNS Inside Conteners nie działa.

Jest to oczywiście krytyczny problem. Jeśli jednak nadal chcesz kontynuować instalację, oto możliwe metody, które można zastosować, aby uniknąć problemów z zależnościami:

  • Zainstaluj konkretną wersję Docker-Ce który wymaga instalacji wersji kontenerd.io pakiet;
  • Wymuszać instalację zapewniającą --Szlachetny opcja
  • Zainstaluj najnowsze dostępne kontenerd.io RPM ręcznie;

Zainstaluj konkretną wersję Docker-CE

W momencie pisania wersji Docker-Ce które są instalowane bez problemów, to:

  • Docker-CE-3: 18.09.1-3.El7
  • Docker-Ce-18.06.3.CE-3.el7;
  • Docker-Ce-17.12.1.CE-1.El7.Centos

Aby zainstalować określoną wersję, musimy tylko podać w pełni wykwalifikowaną nazwę pakietu, na przykład:

$ sudo dnf instaluj Docker-Cce-3: 18.09.1-3.El7

Wymuszaj instalację Docker -CE z opcją -Nobest

Zwykle podczas instalowania pakietu najlepszy dostępny kandydat jest wybierany z repozytorium. W tym przypadku na przykład instalacja najnowszej wersji Docker-Ce jest próba (i zawodzi). Za pomocą --Szlachetny opcja, możemy zmienić to zachowanie, aby pierwsza wersja Docker-Ce W tym przypadku z satysfakcjonującymi zależnościami jest „awarie” 3:18.09.1-3.El7.

$ sudo dnf instalacja-Niezłabaj zależności Docker-CE rozwiązane. Problem: pakiet Docker-CE-3: 19.03.2-3.El7.x86_64 wymaga kontenerowania.IO> = 1.2.2-3, ale żaden z dostawców nie może zostać zainstalowany - nie może zainstalować najlepszego kandydata do pracy - pakiet Containerd.IO-1.2.2-3.3.El7.x86_64 jest wykluczony - Pakiet Containerd.IO-1.2.2-3.El7.x86_64 jest wykluczony - Pakiet Containerd.IO-1.2.4-3.1.El7.x86_64 jest wykluczony - Pakiet Containerd.IO-1.2.5-3.1.El7.x86_64 jest wykluczony - Pakiet Containerd.IO-1.2.6-3.3.El7.x86_64 jest wykluczony ==================================================================== ================================================== ================================================== ==== Rozmiar repozytorium wersji łukowej ================================================================================= ================================================== ================================================== ========== Instalowanie: Docker-CE x86_64 3:18.09.1-3.El7 Docker-CE-stabilny 19 m instalacja zależności: Containerd.IO x86_64 1.2.0-3.EL7 Docker-CE-stabilny 22 M Docker-C-CLI x86_64 1:19.03.2-3.EL7 Docker-CE-Stable 39 M kontener-Selinux Noarch 2: 2.94-1.GIT1E99F1D.Moduł+EL8.0.0+4017+BBBA319F RHEL-8-FOR-X86_64-MAPPSTREAM-RPMS 43 K TAR x86_64 2: 1.30-4.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 838 K Libcgroup x86_64 0.41-19.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 70 K PYTHON3-PolicyCoreutils Noarch 2.8-16.1.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 2.2 m Python3-libsemanage x86_64 2.8-5.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 127 K PYTHON3-SETOOLS x86_64 4.2.0-2.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 598 K CheckPolicy x86_64 2.8-2.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 338 K Python3-Audit x86_64 3.0-0.10.20180831git0047a6c.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 85 K PolicyCoreUtils-Python-Utils Noarch 2.8-16.1.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 228 K PACKACJE Z Złamanymi zależnościami: Docker-CE x86_64 3:19.03.2-3.EL7 Docker-Ce-Stable 24 m Podsumowanie transakcji ====================================================================================== ================================================== ================================================== ========== Zainstaluj 12 pakietów Pomiń 1 pakiet Całkowity rozmiar pobierania: 85 m Zainstalowany Rozmiar: 351 m Is This OK [Y/N]:

Zainstaluj najnowszy dostępny kontenerd.Pakiet IO ręcznie

Jeśli będziemy musieli zainstalować najnowszą wersję Docker-Ce, Możemy zainstalować wymaganą wersję kontenerd.io Ręcznie, biegając:

$ sudo dnf instaluj https: // pobierz.doker.com/linux/centos/7/x86_64/stabilne/pakiety/Containerd.IO-1.2.6-3.3.El7.x86_64.RPM

Po zainstalowaniu pakietu możemy po prostu zainstalować najnowsze Docker-Ce:

$ sudo dnf instaluj zależności Docker-CE rozwiązane. ================================================== ================================================== ================================================== = Pakiet Arch Version Repository Size ================================================================================= ================================================== ================================================== ======= Instalowanie: Docker-CE x86_64 3:19.03.2-3.El7 Docker-CE-Stable 24 M Instalowanie Zależności: Docker-C-CLI x86_64 1:19.03.2-3.EL7 Docker-Ce-Stable 39 M TAR x86_64 2: 1.30-4.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 838 K Libcgroup x86_64 0.41-19.EL8 RHEL-8-X86_64-BASEOS-RPMS 70 K Podsumowanie transakcji ======================================================================================== ================================================== ================================================== ================ Zainstaluj 4 pakiety Całkowity rozmiar pobierania: 65 m Zainstalowany Rozmiar: 275 m to OK [T/N]: 

Ta opcja jest mniej wygodna od czasu kontenerd.io pakiet nie jest instalowany jako zależność Docker-Ce, dlatego nie zostanie on automatycznie usunięty, gdy ten ostatni zostanie odinstalowany z systemu.

Dowolna metoda, której używamy do instalacji Docker-Ce, Jak powiedziano wcześniej, aby zrobić Rozdzielczość DNS Pracuj wewnątrz kontenerów Docker, musimy wyłączyć zaporę ogniową (może być również potrzebne ponowne uruchomienie systemu):

$ sudo systemctl wyłącz zaporę ogniową


Rozpocznij i włącz demona Dockera

Raz Docker-Ce jest zainstalowany, musimy uruchomić i włączyć demona Dockera, aby został on uruchomiony automatycznie podczas rozruchu. Polecenie, które musimy uruchomić, jest następujące:

$ sudo systemctl enable -teraz doker

W tym momencie możemy potwierdzić, że demon jest aktywny, biegając:

$ Systemctl is-aktywny Docker Active 

Podobnie możemy sprawdzić, czy jest włączony podczas rozruchu, uruchamiając:

$ SystemCtl IS-obserwowany Docker 

Instalowanie kompozycji Docker

Docker Compose to bardzo przydatny pakiet, który pozwala nam zarządzać aplikacjami wielu kontaktów, jak na przykład te oparte na stosie lampy, w których każda część środowiska (PHP, Apache, MariaDB) jest dostarczana przez dedykowany kontener (jeśli jesteś zainteresowany W tym temacie spójrz na nasz samouczek na temat tworzenia stosu lampy na bazie dokera). Pakiet nie jest dostępny w RHEL8, ani równoważny nie istnieje z narzędziami RHEL. Możliwe jest jednak zainstalowanie go na wiele sposobów: po prostu czytaj dalej i zdecyduj, jakie najbardziej Ci odpowiada.

Globalna instalacja

Sposób, w jaki powinniśmy zainstalować Kompozycja dokera różni się w zależności od tego, czy chcemy go zainstalować globalnie, czy po prostu dla jednego użytkownika. W momencie pisania jedynym sposobem na zainstalowanie go na całym świecie jest pobranie binarnego ze strony Github projektu:

$ curl -l "https: // github.com/docker/compose/wydania/pobieranie/1.23.2/Docker-Compose-$ (uname -s)-$ (uname -m) "-o Docker-Compose

Po pobraniu plik binarnego przenosimy go do /usr/lokalny/bin I sprawiamy, że jest wykonywalny:

$ sudo mv docker-compose/usr/local/bin && sudo chmod +x/usr/local/bin/compose

/usr/lokalny Hierarchia nie jest wybierana losowo. Ta struktura katalogu ma być używana do plików zainstalowanych przez lokalnego administratora ręcznie (na przykład dla oprogramowania skompilowanego ze źródła), aby zapewnić oddzielenie od oprogramowania zainstalowanego z systemem Menedżera pakietów System Manager.

Chociaż normalny użytkownik może uruchomić polecenia związane z Dockerem, jeśli jest częścią doker Grupa (grupa jest tworzona automatycznie podczas instalowania Docker-CE), domyślnie należy je wykonywać z uprawnieniami root z powodów bezpieczeństwa. Kiedy musimy to zrobić, ponieważ /usr/lokalny/bin Katalog nie znajduje się w użytkowniku głównym ŚCIEŻKA, Musimy albo zadzwonić do binarnego określającego jego lokalizację lub dodać /usr/lokalny/bin do ŚCIEŻKA samo. Pierwszą opcją jest ta, którą polecam w tym przypadku.

Instalacja dla użytkownika

Jeśli nasz użytkownik jest częścią doker grupa, a zatem może uruchamiać polecenia Docker, a od tego czasu Kompozycja dokera jest dostępny jako pakiet Python, możemy go również zainstalować za pomocą pypeć, Menedżer pakietów Python. Najpierw upewnij się, że sam PIP jest zainstalowany:

$ sudo dnf instaluj Python3-Pip

Aby uzyskać kompozycję dokera, prowadzimy:

$ PIP3.6 Zainstaluj Docker-Compose-Użytkownik


Zauważ, że nawet jeśli można by uruchomić PIP jako root do instalacji pakietu na całym świecie, nie jest to zalecane i wysoce zniechęcone.

Testowanie dokera

Zainstalowaliśmy Docker i Docker-Compose, teraz, aby sprawdzić, czy wszystko działa zgodnie z oczekiwaniami, możemy spróbować zbudować obraz i uruchomić kontener: W tym przypadku użyjemy urzędnika httpd jeden. Wszystko, co musimy zrobić, to uruchomić następujące polecenie:

Sudo Docker Run - -rm --name = LinuxConfig -Test -p 80:80 Httpd

Od httpd Obraz nie istnieje lokalnie, zostanie automatycznie pobierany i zbudowany. Wreszcie, pojemnik oparty na nim zostanie uruchomiony na pierwszym planie (zostanie automatycznie usunięty po zatrzymaniu). Powinniśmy być w stanie zobaczyć To działa! Wiadomość, gdy osiągniemy nasz komputer IP za pośrednictwem przeglądarki.

Wnioski

Red Hat Enterprise Linux 8 nie obsługuje Dockera: w tej dystrybucji został zastąpiony przez własne narzędzia Red Hat, takie jak Buildah I Podman, które są kompatybilne z Docker, ale nie potrzebują architektury serwera/klienta do uruchomienia. Używanie natywnych narzędzi, w miarę możliwości, jest zawsze zalecaną drogą, ale z jakiegoś powodu możesz nadal zainstalować oryginalnego dokera. W tym samouczku widzieliśmy, jak można zainstalować Docker CE na Rhel8, używając oficjalnego repozytorium Docker dla Centos7, które jest w 100% kompatybilnym klonem.

Nie jest to idealne rozwiązanie i jak widzieliśmy w tej chwili, potrzebne są niektóre obejścia, aby dokera działało na Rhel8. Jeśli pojawią się jakieś nowe problemy lub znaleziono lepsze rozwiązania wymienionych powyżej problemów, ten artykuł zostanie odpowiednio zaktualizowany. Czekać na dalsze informacje.

Powiązane samouczki Linux:

  • Jak utworzyć stos lampy na bazie Dockera za pomocą Dockera na…
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Zainstaluj Docker na Almalinux
  • Jak połączyć się z kontenerem Docker za pośrednictwem SSH
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Jak zainstalować Kubernetes na wszystkich dystrybucjach Linux
  • Jak zainstalować Debiana na istniejącym kontenerze Luksa
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Jak zainstalować i skonfigurować silnik Docker-Ce/Moby na Fedorze…
  • Mastering Bash Script Loops