So installieren Sie Docker CE auf RHEL 8 / CentOS 8

So installieren Sie Docker CE auf RHEL 8 / CentOS 8

Die neueste Veröffentlichung des Rhel 8 / Centos 8. Red Hat hat seine eigenen Werkzeuge gebaut, Buildah Und Podman, die darauf abzielen, mit vorhandenen Docker -Bildern kompatibel zu sein und zu arbeiten, ohne sich auf einen Daemon zu verlassen, sodass die Erstellung von Containern als normale Benutzer erstellt werden kann, ohne dass spezielle Berechtigungen erforderlich sind (mit einigen Einschränkungen: e.G. Im Moment des Schreibens ist es immer noch nicht möglich, Host -Ports ohne Privilegien in den Container abzubilden.

Einige spezifische Tools fehlen jedoch immer noch: ein Äquivalent von Docker-Compose, Zum Beispiel existiert noch nicht. In diesem Tutorial sehen wir, wie Sie den ursprünglichen Docker CE unter RHEL8 installieren und ausführen, indem Sie das offizielle Docker -Repository für CentOS7 verwenden.

In diesem Tutorial lernen Sie:

  • So aktivieren Sie das Docker-CECE-Repository auf RHEL 8 / CentOS 8
  • So installieren Sie Docker und Docker-Compose auf RHEL 8 / CentOS 8


Docker auf RHEL 8 / Centos 8 installiert

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Rhel 8 / Centos 8
Software Docker Version 18.09.2
Andere Erlaubnis, den Befehl mit Root -Privilegien auszuführen.
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Was ist Docker?

Docker ist ein Open -Source -Projekt, mit dem die Erstellung und Verteilung von Anwendungen innerhalb Behälter, Dies sind standardisierte Umgebungen, die leicht repliziert werden können, unabhängig vom Host -System. Während in Red Hat Enterprise Linux 7 Docker offiziell unterstützt wurde, wurde es bei der neuen Veröffentlichung dieses Open -Source -Betriebssystems durch eine Reihe anderer Tools ersetzt, die von Red Hat selbst entwickelt wurden: Buildah Und Podman.

Durch die Verwendung eines externen Repositorys ist es jedoch weiterhin möglich, Docker CE (Community Edition) zu installieren. In diesem Tutorial werden wir sehen, wie dieses Repository installiert wird. Beachten Sie jedoch, dass es ursprünglich dafür gedacht war Centos 7 (Ein Rhel -Klon), und die Community -Version von Docker hat keine offizielle Unterstützung für Red Hat Enterprise Linux. Aus diesem Grund gibt es Probleme - wir diskutieren sie unten.

Hinzufügen des externen Repositorys

Da Docker auf RHEL 8 / CentOS 8 nicht verfügbar ist, müssen wir ein externes Repository hinzufügen, um die Software zu erhalten. In diesem Fall werden wir das offizielle Docker Centos -Repository verwenden.



Der DNF Config-Manager Nutzen lassen Sie uns unter den anderen Dingen ein Repository in unserer Verteilung leicht aktivieren oder deaktivieren. Standardmäßig nur die Appstream Und Basisos Repositorys sind auf RHEL8 aktiviert; Wir müssen auch die hinzufügen und aktivieren Docker-CE Repo. Alles, was wir tun müssen, um diese Aufgabe zu erfüllen, ist, den folgenden Befehl auszuführen:

$ sudo dnf config-Manager --add-Repo = https: // download.Docker.com/linux/centos/docker-ce.Repo

Wir können überprüfen, ob das Repository aktiviert wurde, indem wir die Ausgabe des folgenden Befehls betrachten:

$ sudo dnf repolist -v

Der obige Befehl gibt detaillierte Informationen zu allen aktivierten Repositorys zurück. Das sollten Sie an diesem Punkt sehen:

Repo-ID: Docker-CE-Stabile Repo-Name: Docker CE Stable-x86_64 Repo-Revision: 1549905809 Repo-Updated: Mon 11 Feb 2019 06:23:29 PM CET Repo-PKGS: 30 Repo-Sizze: 618 M Repo Repo Repo Repo Repo Repo Repo MEPO. -Baseurl: https: // herunterladen.Docker.com/linux/centos/7/x86_64/stabiler repo-expire: 172.800 Sekunden.Repos.D/Docker-CE.repo repo-id: rhel-8-für-x86_64-appstream-rpms repo-name: Red Hat Enterprise Linux 8 für x86_64-Appstream Beta (RPMS) Repo-Wiederholung: 1542158694 Repo-Updated: Wed 14 Nov 2018 02:24: 54 AM CET Repo-PKGs: 4,594 Repo-Größe: 4.9 G Repo-Baseurl: https: // cdn.roter Hut.com/content/beta/rhel8/8/x86_64/appstream/os repo-expire: 86.400 Sekunden (l) (zuletzt: Mo 18. Februar 2019 10:23:55 Uhr CET) Repo-FileName:/etc/yum.Repos.D/Redhat.repo repo-id: rhel-8-für-x86_64-baseos-rpms repo-name: Red Hat Enterprise Linux 8 für x86_64-Baseos Beta (RPMS) Repo-Revision: 1542158719 Repo-Updated: Mi 14 Nov 2018 02:25: 19 Uhr CET Repo-PKGS: 1.686 Repo-Größe: 925 M Repo-Baseurl: https: // cdn.roter Hut.com/content/beta/rhel8/8/x86_64/baseos/os repo-expire: 86.400 Sekunden (l) (zuletzt: Mo 18. Februar 2019 10:23:56 Uhr CET) Repo-Fileame:/etc/yum.Repos.D/Redhat.Repo Gesamtpakete: 6.310 

Installieren von Docker-CE

Der Docker-CE-Stabil Repository ist jetzt in unserem System aktiviert. Das Repository enthält mehrere Versionen der Docker-CE Paket, um alle anzuzeigen, können wir ausführen:

$ DNF LIST DECKER-CECE --howduplicates | Sortieren Sie -r Docker -CE.x86_64 3:19.03.2-3.el7 docker-ce-stabil docker-ce.x86_64 3:19.03.1-3.el7 docker-ce-stabil docker-ce.x86_64 3:19.03.0-3.el7 docker-ce-stabil docker-ce.x86_64 3:18.09.9-3.el7 docker-ce-stabil docker-ce.x86_64 3:18.09.8-3.el7 docker-ce-stabil docker-ce.x86_64 3:18.09.7-3.el7 docker-ce-stabil docker-ce.x86_64 3:18.09.6-3.el7 docker-ce-stabil docker-ce.x86_64 3:18.09.5-3.el7 docker-ce-stabil docker-ce.x86_64 3:18.09.4-3.el7 docker-ce-stabil docker-ce.x86_64 3:18.09.3-3.el7 docker-ce-stabil docker-ce.x86_64 3:18.09.2-3.el7 docker-ce-stabil docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stabil docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stabil docker-ce.x86_64 18.06.3.CE-3.el7 docker-ce-stabil docker-ce.x86_64 18.06.2.CE-3.el7 docker-ce-stabil docker-ce.x86_64 18.06.1.CE-3.el7 docker-ce-stabil docker-ce.x86_64 18.06.0.CE-3.el7 docker-ce-stabil docker-ce.x86_64 18.03.1.CE-1.EL7.Centos docker-ce-stabiler Docker-CE.x86_64 18.03.0.CE-1.EL7.Centos docker-ce-stabiler Docker-CE.x86_64 17.12.1.CE-1.EL7.Centos docker-ce-stabiler Docker-CE.x86_64 17.12.0.CE-1.EL7.Centos docker-ce-stabiler Docker-CE.x86_64 17.09.1.CE-1.EL7.Centos docker-ce-stabiler Docker-CE.x86_64 17.09.0.CE-1.EL7.Centos docker-ce-stabiler Docker-CE.x86_64 17.06.2.CE-1.EL7.Centos docker-ce-stabiler Docker-CE.x86_64 17.06.1.CE-1.EL7.Centos docker-ce-stabiler Docker-CE.x86_64 17.06.0.CE-1.EL7.Centos docker-ce-stabiler Docker-CE.x86_64 17.03.3.CE-1.el7 docker-ce-stabil docker-ce.x86_64 17.03.2.CE-1.EL7.Centos docker-ce-stabiler Docker-CE.x86_64 17.03.1.CE-1.EL7.Centos docker-ce-stabiler Docker-CE.x86_64 17.03.0.CE-1.EL7.Centos Docker-CE-Stabil 

Welche Version zu installieren? Nun, Red Hat scheint die Installation von irgendwie blockiert zu haben Container.io > 1.2.0-3.EL7, Welches ist eine Abhängigkeit von Docker-CE. Aus diesem Grund leiten einfach das sudo dnf installieren docker-ce Befehl, wird nicht funktionieren. Wie wir in einer Minute sehen werden, ist es immer noch möglich, dieses Problem zu verarbeiten. einmal Docker-CE wird jedoch installiert, ein weiteres Problem wird deutlich: so lange wie Firewall, Der System Firewall Manager ist aktiviert, DNS -Auflösung Inside Docker -Container funktioniert nicht.

Dies ist natürlich ein kritisches Problem. Wenn Sie jedoch weiterhin mit der Installation fortfahren möchten, sind hier die möglichen Methoden verwendet, mit denen die Abhängigkeitsprobleme vermieden werden können:

  • Installieren Sie eine bestimmte Version von Docker-CE Dies erfordert eine installierbare Version der Container.io Paket;
  • Erzwingen Sie die Installation, die die bereitstellt --Nobest Möglichkeit
  • Installieren Sie die neuesten verfügbaren verfügbaren Container.io RPM manuell;

Installieren Sie eine bestimmte Version von Docker-CE

Im Moment des Schreibens der Versionen von Docker-CE die ohne Probleme installiert sind:

  • 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

Um eine bestimmte Version zu installieren, müssen wir nur den voll qualifizierten Paketnamen angeben, zum Beispiel:

$ sudo dnf installieren docker-ce-3: 18.09.1-3.EL7

Erzwingen Sie die Installation von Docker -CE mit der nobesten Option

Normalerweise wird bei der Installation eines Pakets der beste verfügbare Kandidat aus einem Repository ausgewählt. In diesem Fall beispielsweise die Installation der neuesten Version von Docker-CE wird versucht (und scheitert). Durch Verwendung der --Nobest Option können wir dieses Verhalten so ändern, dass die erste Version von Docker-CE Mit zufriedenen Abhängigkeiten wird in diesem Fall als „Fallback“ ausgewählt 3:18.09.1-3.EL7.

$ sudo dnf Install. Problem: Paket Docker-CE-3: 19.03.2-3.EL7.x86_64 Benötigt Container.io> = 1.2.2-3, aber keiner der Anbieter kann installiert werden - kann nicht den besten Kandidaten für den Job installieren - Paketcontainerd.IO-1.2.2-3.3.EL7.x86_64 ist ausgeschlossen - Paketbehälter.IO-1.2.2-3.EL7.x86_64 ist ausgeschlossen - Paketbehälter.IO-1.2.4-3.1.EL7.x86_64 ist ausgeschlossen - Paketbehälter.IO-1.2.5-3.1.EL7.x86_64 ist ausgeschlossen - Paketbehälter.IO-1.2.6-3.3.EL7.x86_64 is excluded =============================================== ====================================================== ====================================================== ==== Package Arch Version Repository Size ========================================= ====================================================== ====================================================== =========== Installation: Docker-CE X86_64 3:18.09.1-3.EL7 Docker-ce-stabil 19 m Installation von Abhängigkeiten: Containerd.io x86_64 1.2.0-3.el7 docker-ce-stabil 22 M Docker-CE-Cli x86_64 1:19.03.2-3.el7 docker-ce-stabil 39 m Container-Selinux Noarch 2: 2.94-1.git1e99f1d.Modul+EL8.0.0+4017+BBBA319F RHEL-8-für-X86_64-Appstream-RPMS 43 K TAR X86_64 2: 1.30-4.EL8 RHEL-8-für-X86_64-Baseos-RPMS 838 K libcGroup x86_64 0.41-19.EL8 RHEL-8-für-X86_64-Baseos-RPMS 70 K Python3-Policycoreutils Noarch 2.8-16.1.EL8 RHEL-8-für-X86_64-Baseos-RPMS 2.2 M Python3-Libsemanage x86_64 2.8-5.EL8 RHEL-8-für-X86_64-Baseos-RPMS 127 K Python3-Setools x86_64 4.2.0-2.EL8 RHEL-8-für-X86_64-Baseos-RPMS 598 K CheckPolicy x86_64 2.8-2.EL8 RHEL-8-für-X86_64-Baseos-RPMS 338 K Python3-ADIT X86_64 3.0-0.10.20180831Git0047a6c.EL8 RHEL-8-für-X86_64-Baseos-RPMS 85 K PolicyCoreutils-Python-Utils Noarch 2.8-16.1.EL8 RHEL-8-für-X86_64-Baseos-RPMS 228 K Überspringen von Paketen mit kaputten Abhängigkeiten: Docker-CE X86_64 3:19.03.2-3.EL7 DOCKER-CE-Stabil 24 m Transaktions Zusammenfassung ====================================================== ====================================================== ============ Installieren 12 Pakete überspringen 1 Paket Gesamtdownload Größe: 85 m installierte Größe: 351 m ist das in Ordnung [Y/N]:

Installieren Sie den neuesten verfügbaren Container.IO -Paket manuell

Wenn wir streng die neueste Version von installieren müssen Docker-CE, Wir können die erforderliche Version von installieren Container.io manuell durch Laufen:

$ sudo dnf install https: // download.Docker.com/linux/centos/7/x86_64/stabil/pakete/containerd.IO-1.2.6-3.3.EL7.x86_64.Drehzahl

Nachdem das Paket installiert wurde, können wir einfach die neuesten installieren Docker-CE:

$ sudo dnf Installieren Sie Docker-CE-Abhängigkeiten behoben. ====================================================== ====================================================== ====================================================== = Package Arch Version Repository Size ============================================ ====================================================== ====================================================== ======== Installation: Docker-CE X86_64 3:19.03.2-3.EL7 Docker-CE-Stabil 24 m Installation von Abhängigkeiten: Docker-CLI x86_64 1:19.03.2-3.el7 docker-ce-stabil 39 m tar x86_64 2: 1.30-4.EL8 RHEL-8-für-X86_64-Baseos-RPMS 838 K libcGroup x86_64 0.41-19.el8 rhel-8-for-x86_64-baseos-rpms 70 k Transaction Summary ================================== ====================================================== ====================================================== ================== Installieren Sie 4 Pakete Gesamt -Download -Größe: 65 m installierte Größe: 275 m ist das in Ordnung [Y/N]: 

Diese Option ist weniger bequem, da die Container.io Paket ist nicht als Abhängigkeit von installiert Docker-CE, Daher wird es nicht automatisch entfernt, wenn der letztere aus dem System deinstalliert wird.

Welche Methode wir auch für die Installation verwenden Docker-CE, Wie bereits erwähnt, um zu machen DNS -Auflösung Arbeiten Sie in Docker -Containern. Wir müssen Firewalld deaktivieren (ein System -Neustart kann ebenfalls benötigt werden):

$ sudo systemctl deaktivieren Firewalld


Starten Sie und aktivieren Sie den Docker -Daemon

Einmal Docker-CE ist installiert, wir müssen den Docker -Daemon starten und aktivieren, damit er auch automatisch beim Boot gestartet wird. Der Befehl, den wir ausführen müssen, lautet Folgendes:

$ sudo systemctl aktivieren -jetzt Docker

Zu diesem Zeitpunkt können wir bestätigen, dass der Daemon durch Laufen aktiv ist:

$ systemctl is-active Docker Active 

In ähnlicher Weise können wir überprüfen, ob es beim Start aktiviert ist, indem wir ausführen:

$ systemCTL ist aktiviertes Docker aktiviert 

Installieren von Docker-Compose

Docker Compose ist ein sehr nützliches Paket, mit dem wir Multi-Container-Anwendungen verwalten können, wie zum Beispiel diejenigen, die auf dem Lampenstapel basieren, wobei jeder Teil der Umgebung (PHP, Apache, Mariadb) von einem speziellen Container bereitgestellt wird (wenn Sie interessiert sind Schauen Sie sich in diesem Thema unser Tutorial über das Erstellen eines Lampenstapels auf Docker an. Das Paket ist weder auf RHEL8 verfügbar noch ein Äquivalent gibt es mit den RHEL -Tools. Es ist jedoch möglich, es auf viele Arten zu installieren: Lesen Sie einfach weiter und entscheiden Sie, was zu Ihnen am besten passt.

Globale Installation

Die Art und Weise, wie wir installieren sollten Docker-Compose variiert je nachdem, ob wir es global installieren möchten oder nur für einen einzelnen Benutzer. Im Moment des Schreibens besteht die einzige Möglichkeit, es global zu installieren, das Binärdatum von der Github -Seite des Projekts herunterzuladen:

$ curl -l "https: // github.com/docker/komponieren/veröffentlichen/download/1.23.2/Docker-Compose-$ (uname -s)-$ (uname -m) "-O docker-compose

Sobald die Binärdatei heruntergeladen ist, verschieben wir es in /usr/local/bin Und wir machen es ausführbar:

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

Der /usr/lokal Hierarchie wird nicht zufällig ausgewählt. Diese Verzeichnisstruktur wird so hergestellt, dass Dateien manuell für Dateien verwendet werden, die vom lokalen Administrator (z.

Obwohl es einem normalen Benutzer möglich ist, Docker-bezogene Befehle auszuführen, wenn er Teil der ist Docker Gruppe (die Gruppe wird automatisch erstellt, wenn wir Docker-CE installieren), standardmäßig muss sie aus Sicherheitsgründen mit Root-Berechtigungen ausgeführt werden. Wenn wir Letzteres tun müssen, da die /usr/local/bin Das Verzeichnis ist nicht im Root -Nutzer WEG, Wir müssen entweder die Binärdatei anrufen, indem wir seinen Standort angeben oder hinzufügen /usr/local/bin zum WEG selbst. Die erste Option ist die, die ich in diesem Fall empfehle.

Installation pro Benutzer

Wenn unser Benutzer Teil der ist Docker Gruppe, und so darf es Docker -Befehle ausführen, und seitdem Docker-Compose ist als Python -Paket erhältlich. Wir können es auch mithilfe von Verwendung installieren Pip, Der Python -Paketmanager. Stellen Sie zunächst sicher, dass Pip selbst installiert ist:

$ sudo dnf install python3-pip installieren

Um Docker-Compose zu erhalten, rennen wir:

$ pip3.6 Installieren Sie Docker-Compose-Benutzerausstattung


Bitte beachten Sie, dass es nicht empfohlen und stark entmutigt werden kann, wenn es möglich ist, PIP als Root auszuführen, um ein Paket weltweit zu installieren.

Testen von Docker

Wir haben Docker und Docker-compose installiert, um zu überprüfen, ob alles wie erwartet funktioniert. Wir können versuchen, ein Bild zu erstellen und einen Container auszuführen: In diesem Fall werden wir den Beamten verwenden httpd eins. Wir müssen nur den folgenden Befehl starten:

sudo docer run - -rm --Name = linuxconfig -test -P 80:80 HTTPD

Seit der httpd Bild existiert nicht lokal, es wird automatisch abgerufen und gebaut. Schließlich wird ein Container, der darauf basiert, im Vordergrund gestartet (er wird automatisch entfernt, wenn er gestoppt wird). Wir sollten in der Lage sein, das zu sehen Es klappt! Nachricht, wenn wir unseren Computer IP über Browser erreichen.

Schlussfolgerungen

Red Hat Enterprise Linux 8 unterstützt Docker nicht: Bei dieser Verteilung wurde es durch Red Hat eigene Tools wie ersetzt Buildah Und Podman, die mit Docker kompatibel sind, aber keine Server-/Client -Architektur zum Ausführen benötigen. Wenn möglich mit nativen Tools, ist es immer die empfohlene Möglichkeit, zu gehen, aber aus einem oder anderen Grund möchten Sie möglicherweise noch den Original Docker installieren. In diesem Tutorial haben wir gesehen, wie es möglich ist, zu installieren Docker CE Auf RHEL8, indem das offizielle Docker -Repository für CentOS7 verwendet wird, einem 100% kompatiblen Klon ist.

Dies ist keine ideale Lösung, und wie wir gesehen haben, werden im Moment einige Problemumgehungen benötigt, damit Docker an RHEL8 funktioniert. Wenn einige neue Probleme auftreten oder bessere Lösungen für die oben genannten Probleme gefunden werden, wird dieser Artikel entsprechend aktualisiert. Bleiben Sie dran.

Verwandte Linux -Tutorials:

  • So erstellen Sie einen Docker -basierten Lampenstapel mit Docker auf…
  • Dinge zu installieren auf Ubuntu 20.04
  • Installieren Sie Docker auf Almalinux
  • So stellen Sie über SSH eine Verbindung zum Docker -Container her
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • So installieren Sie Kubernetes auf allen Linux -Distributionen
  • So installieren Sie Debian in einem vorhandenen Luks -Container
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • So installieren und konfigurieren Sie Docker-CE/Moby Engine auf Fedora…
  • Mastering -Bash -Skriptschleifen beherrschen