Docker startet nicht auf EL10
Auf den Minimal- und Cloud-Images von RHEL, AlmaLinux und Rocky Linux 10 (EL10) fehlt ein Kernel-Modul-Paket, das Docker für sein Netzwerk-Setup benötigt — in diesem Fall startet Docker nicht, und die Installation von Relution lässt sich nicht fortsetzen. Diese Anleitung beschreibt, wie das fehlende Paket vor dem ersten Docker-Start nachinstalliert wird.
Problem
Auf den Minimal- und Cloud-Images von RHEL, AlmaLinux und Rocky Linux 10 fehlt das Paket kernel-modules-extra. Ohne dieses Paket kann iptables das Kernel-Modul xt_addrtype nicht laden, das Docker für sein Bridge- und NAT-Setup benötigt. Der Docker-Dienst startet dann nicht und bricht mit folgender Meldung ab:
failed to add jump rules to ipv4 NAT table: ... xt_addrtype
In der Ausgabe von systemctl status docker erscheint häufig nur der Folgefehler Start request repeated too quickly — die eigentliche Ursache steht in journalctl -xeu docker.service.
Lösung
Die folgenden Schritte werden vor dem ersten Start von Docker ausgeführt:
# 1. Modul-Paket passend zum LAUFENDEN Kernel installieren
sudo dnf install -y "kernel-modules-extra-$(uname -r)"
# 2. Module laden
sudo modprobe xt_addrtype br_netfilter ip_tables
# 3. Persistent hinterlegen – werden bei jedem Boot automatisch geladen
echo -e "xt_addrtype\nbr_netfilter\nip_tables" | sudo tee /etc/modules-load.d/docker.conf
# 4. Docker starten
sudo systemctl reset-failed docker.service
sudo systemctl enable --now docker
Warum diese zwei Punkte wichtig sind
- Versioniert installieren (
kernel-modules-extra-$(uname -r)): stellt sicher, dass die Module zum aktuell laufenden Kernel passen. Ein einfachesdnf install kernel-modules-extraliefert die Module gegebenenfalls nur für einen neueren, noch nicht gebooteten Kernel — dann schlägtmodprobemitModule xt_addrtype not foundfehl, bis das System neu gestartet wird. Meldetdnfumgekehrt kein passendes Paket zum aktuell laufenden Kernel (z. B. nach einem vorherigendnf updateohne Neustart), ist stattdessen ein Neustart auf den zuletzt installierten Kernel nötig, bevor der Befehl erneut ausgeführt wird. /etc/modules-load.d/docker.conf: sorgt übersystemd-modules-load.servicedafür, dass die Module bei jedem Neustart automatisch geladen werden. Ohne diese Datei wäre der Fix nach dem nächsten Reboot wieder verloren.
Prüfen, ob es funktioniert hat
sudo modprobe xt_addrtype && echo "OK – Modul ladbar"
sudo systemctl is-active docker
sudo docker run --rm hello-world
Erscheint bei modprobe keine Fehlermeldung, meldet der Dienst active und gibt der Testcontainer Hello from Docker! aus, ist der Schritt abgeschlossen.