Schlagwort-Archive: CentOS

Docker unter CentOS 8 und Fedora 31 installieren

Seit Red Hat auf seine eigene Docker-Lösung Podman setzt, ist die Verwendung von Docker unter CentOS und Fedora zunehmend mühsamer geworden. Man könnte fast den Eindruck gewinnen, Red Hat will Docker das Leben so schwer wie möglich machen …

Wie dem auch sei: Hier finden Sie eine Anleitung, wie Sie die originalen Docker-Pakete unter Fedora 31 bzw. CentOS 8 installieren und einrichten.

Docker unter Fedora 31 installieren

Wie unter Fedora 31 erläutert, verwendet Fedora 31 als erste »große« Distribution standardmäßig cgroups2. An sich ist das eine gute Sache, allerdings sind die meisten marktüblichen Container-Systeme noch nicht cgroups2 kompatibel. Sie müssen also cgroups1 reaktivieren. (Diese und alle weiteren Kommandos sind mit root-Rechten auszuführen.)

grub2-editenv - set "$(grub2-editenv - list | grep kernelopts) systemd.unified_cgroup_hierarchy=0"
reboot

Falls Sie die Moby-Engine installiert haben, müssen Sie diese entfernen:

dnf remove moby-engine

Anschließend richten Sie die Docker-Paketquelle für Fedora ein und installieren mit docker-ce auch die abhängigen Pakete docker-ce-cli und containerd.io.

dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
dnf install docker-ce 
systemctl enable --now docker    # Docker-Dämon starten

Das Kommando docker verrät, dass die Version 19.03 installiert ist:

docker version
  Client: Docker Engine - Community
     Version:         19.03.4
  Server: Docker Engine - Community
    Engine:
    Version:          19.03.4
  ...

Docker unter CentOS 8 installieren

RHEL 8 und CentOS 8 verwenden (noch?) das cgroups1-Framework; diesbezüglich sind also keine Änderungen erforderlich. Sie können also gleich damit beginnen, die Docker-Paketquelle einzurichten:

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Der Versuch, nun wie unter Fedora einfach docker-ce zu installieren, scheitert aber mit einer Fehlermeldung. docker-ce setzt eine aktuelle Version des Pakets containerd.io voraus. Dieses Paket existiert in den Paketquellen, aber yum weigert sich aus unerfindlichen Gründen, es zu verwenden.

Die Installation gelingt über Umwege aber doch. Dazu werfen Sie zuerst einen Blick in die Paketquelle:

https://download.docker.com/linux/centos/7/x86_64/stable/Packages

Dort suchen Sie nach der aktuellsten verfügbaren Version des containerd.io-Pakets. Im November 2019 war das die Version 1.2.10. Diese Version installieren Sie nun, indem an yum explizit die Adresse des Pakets in der Paketquelle übergeben.

yum -y install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.10-3.2.el7.x86_64.rpm

In der Folge klappt nun die Installation der restlichen Pakete und die Aktivierung des Docker-Dämons:

yum install docker-ce
systemctl enable --now docker

Damit steht dieselbe Docker-Version wie unter Fedora zur Verfügung:

docker version
  Client: Docker Engine - Community
     Version:         19.03.4
  Server: Docker Engine - Community
    Engine:
    Version:          19.03.4
  ...

Benutzer zur docker-Gruppe hinzufügen (gilt für CentOS + Fedora)

Das Kommando docker erfordert normalerweise root-Rechte. Um das ständige Voranstellen von sudo zu vermeiden, sollten Sie Ihren gewöhnlichen Arbeits-Account zur docker-Gruppe hinzufügen. (Alle Mitglieder der docker-Gruppe können das Kommando docker auch ohne sudo ausführen.)

usermod -aG docker <accountname>

Die Änderung wird erst nach einem neuerlichen Login wirksam.

Beachten Sie, dass diese scheinbar harmlose Gruppenzuordnung zwar viel Arbeitskomfort gibt und entsprechend beliebt ist, aber gleichzeitig auch ein großes Sicherheitsrisiko darstellen kann. Indirekt geben Sie dem betroffenen Account damit Root-Rechte! Warum das so ist, erläutert die Docker-Dokumentation. Auf einem Entwicklungsrechner, auf dem Sie ohnedies sudo-Rechte haben, ist die Einstellung OK. Auf einem Produktivsystem ist das usermod-Kommando eher nicht zu empfehlen.

Firewall-Probleme (gilt für CentOS + Fedora)

Grundsätzlich können Sie Docker jetzt verwenden — aber es besteht noch ein großes Problem: In den Docker-Containern funktioniert der Internet-Zugang nicht. Genaugenommen ist nur der Nameserver-Zugriff blockiert, aber das ist schlimm genug. Im Web finden Sie diverse Lösungswege zur Behebung des Problems, von der kompletten Deaktivierung von firewalld bis hin zu Ausnahmeregeln für die vom Docker-Dämon verwendete Netzwerkschnittstelle docker0 (siehe auch die Links am Ende des Artikels). Sicherheitstechnisch am vernünftigsten erscheint es, für das aktive Firewall-Profil (unter Fedora normalerweise FedoraWorkstation, unter CentOS normalerweise public nur das Masquerading zu aktivieren. Dazu finden Sie zuerst den Profilnamen heraus, wobei Sie anstelle von enp1s0 den Namen Ihrer Netzwerkschnittstelle zum Internet angeben.

firewall-cmd --get-zone-of-interface=enp1s0
   FedoraWorkstation

firewall-cmd --zone=FedoraWorkstation --add-masquerade --permanent
firewall-cmd --reload

Um den Docker-Netzwerkzugang zu testen, richten Sie einen Container von Alpine Linux ein und führen darin ping mit irgendeiner bekannten Adresse aus:

docker run --rm -it alpine:latest /bin/sh
/ # ping google.de
PING google.de (172.217.22.67): 56 data bytes
64 bytes from 172.217.22.67: seq=0 ttl=53 time=25.920 ms
64 bytes from 172.217.22.67: seq=1 ttl=53 time=26.283 ms
^C
--- google.de ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 25.920/26.101/26.283 ms
/ # exit

Leider ist das nicht das einzige Firewall-Problem. Jeder Docker-Container kann in einer an sich
geschlossenen Firewall den Schutz für einzelne Ports »aufreißen« (siehe dieses github-Issue). Das liegt daran, dass das Firewall-Systeme von Fedora/CentOS/RHEL nicht mit Docker koordiniert ist. Ähnliche Probleme können auch bei anderen Linux-Distributionen auftreten, die eine Firewall aktivieren. Eine unmittelbare Lösung dafür gibt es nicht.

Quellen

Zur Firewall-Problematik:

CentOS 8

Mehr als vier Monate nach der Vorstellung von Red Hat Enterprise Linux 8 ist endlich auch CentOS 8 verfügbar. Genaugenommen lautet die Versionsnummer nicht 8, sondern 8.0.1905. CentOS wurde also von RHEL 8.0 geklont, das im Mai 2019 veröffentlicht wurde. (Dass CentOS erst im September 2019 veröffentlicht wurde, spielt in der Versionsnomenklatur keine Rolle.)

CentOS ist der populärste RHEL-Klon und wird vor allem im Server-Bereich oft als Geld sparende Alternative zu RHEL eingesetzt. Dieser Artikel fasst kurz zusammen, wodurch sich CentOS 8 von RHEL 8 unterscheidet, und erläutert das neue Angebot CentOS Stream.

CentOS 8 weiterlesen

Der Status von EPEL 8

EPEL steht für Extra Packages for Enterprise Linux und ist die wichtigste externe Paketquelle für RHEL- und CentOS-Anwender. EPEL hat deswegen eine so große Bedeutung, weil Red Hat traditionell viel weniger Pakete ausliefert/pflegt als beispielsweise Debian oder Ubuntu. RHEL/CentOS-Anwender, die darüberhinaus weitere Software-Pakete benötigen, richten deswegen zumeist die EPEL-Paketquelle ein.

Wer nach der Freigabe von Red Hat Enterprise Linux 8 (RHEL 8) sofort den Umstieg wagte, musste allerdings ohne EPEL auskommen. Weil Red Hat die Organisation seiner eigenen Pakete grundlegend verändert hat (Modularisierung durch das AppStream-Verfahren), muss auch das EPEL-Repository vollkommen neu organisiert werden — und das kostet Zeit.

Der Status von EPEL 8 weiterlesen

CentOS 7.2

Mit beträchtlicher Verzögerung gegenüber RHEL 7.2 ist diese Woche CentOS 7.2 fertig geworden. Die Dateinamen der ISO-Images enthalten anstelle der Versionsnummer die Bezeichnung 15.11. CentOS verwendet für seine Medien seit Version 7 Ubuntu-ähnliche Versionsnummern. Ein wenig schleierhaft ist nur, warum die Download-Medien 15.11 und nicht 15.12 im Dateinamen enthalten. Die Freigabe der Medien erfolgte definitiv erst im Dezember.

CentOS 7.2 weiterlesen

CentOS: Probleme beim Update von 7.0 auf 7.1

Wenn Sie regelmäßig yum update ausführen, ist aus Ihrer CentOS-7-Installation schon seit geraumer Zeit CentOS 7.1 geworden. Nicht so fleißige Administratoren haben aber Pech: Wenn Sie einige Wochen lang kein Update durchgeführt haben, dann scheitert der Update-Versuch jetzt.

Der Grund: Eine Woche nach dem Update von CentOS 7 auf 7.1 wurden die Mirror-Verzeichnisse umgestellt, von 7.0.1406 auf 7.1.1503. Standardmäßig ist deltarpm aktiv, d.h. die Paketverwaltung versucht, nur Delta-Pakete herunterzuladen. Und das scheitert wegen der Versionsumstellung. Sie erhalten lauter HTTP Not Found Fehlermeldungen.

CentOS: Probleme beim Update von 7.0 auf 7.1 weiterlesen

root-Passwort zurücksetzen in CentOS 7

Wer in die missliche Lage geriet, das root-Passwort eines RHEL- oder CentOS-Systems zurücksetzen zu müssen, konnte bis einschließlich Version 6 im Single User Modus booten. Dort war ein root-Login ohne Passwort möglich. Mit passwd konnte dann ein neues root-Passwort eingestellt werden. Unter RHEL und CentOS 7 müssen nun aber neue Wege beschritten werden.

root-Passwort zurücksetzen in CentOS 7 weiterlesen

Deutsche Textkonsolen in CentOS 7

Im Grafikmodus sowie via SSH funktionieren die bei der CentOS-Installation gewählten Spracheinstellungen problemlos. Wenn Sie aber in Textkonsolen arbeiten möchten (z.B. in einer virtuellen Maschine, bei einer Schulung, im Unterricht), dann zickt CentOS gerne. Mit den folgenden Tipps gelingt Ihnen auch in der Textkonsole die Eingabe von äöüß.

Deutsche Textkonsolen in CentOS 7 weiterlesen

CentOS 7

Seit Anfang Juli ist CentOS 7 verfügbar. Der neuen Kooperation zwischen Red Hat und CentOS ist es zu verdanken, dass die Freigabe von CentOS 7 nicht einmal ein Monat nach der Fertigstellung von RHEL 7 gelang.

CentOS 7 im Classical Mode von Gnome 3.8

Für nicht-kommerzielle Linux-Server-Anwender zählt CentOS neben Debian und Ubuntu zu den attraktivsten Angeboten. Wer nicht ständig die neuesten Gnome-, Gimp- und LibreOffice-Versionen braucht, kann sogar den Desktop-Einsatz in Erwägung ziehen. Aus meiner Sicht ist CentOS 7 neben Ubuntu 14.04 die interessanteste Linux-Distribution des Jahres 2014.

CentOS 7 weiterlesen