Container & VMs

Docker auf Rocky Linux installieren und verwenden – Schritt für Schritt

Einleitung

Docker ist eine der führenden Containerisierungsplattformen, die es Entwicklern und Systemadministratoren ermöglicht, Anwendungen in isolierten, portablen Umgebungen auszuführen. Container sind leichtgewichtige Virtualisierungslösungen, die Anwendungen samt ihrer Abhängigkeiten kapseln, ohne dabei ein vollständiges Betriebssystem zu benötigen.

Rocky Linux, als Enterprise-Linux-Distribution, bringt standardmäßig Podman als Container-Runtime mit. Dennoch bleibt Docker aufgrund seines ausgereiften Ökosystems, der breiten Industrieakzeptanz und der nahtlosen Integration mit Docker Compose eine beliebte Wahl. Die umfangreiche Dokumentation und der Support durch Drittanbieter-Tools machen Docker zu einer attraktiven Option für viele Anwendungsfälle.

In diesem Tutorial lernen Sie, wie Sie Docker Engine auf Rocky Linux installieren und erfolgreich einsetzen. Wir behandeln die Installation aus den offiziellen Docker-Repositories, die Konfiguration der Benutzerberechtigungen und den praktischen Umgang mit Containern und Images. Zusätzlich zeigen wir Ihnen, wie Sie Docker Compose für Multi-Container-Anwendungen verwenden.

Voraussetzungen

Bevor Sie mit der Installation von Docker beginnen, stellen Sie sicher, dass folgende Voraussetzungen erfüllt sind:

  • Ein Rocky Linux System (Version 8 oder 9) mit Root-Zugriff oder sudo-Berechtigung
  • Eine aktive Internetverbindung für den Download der Pakete
  • Grundlegende Kenntnisse der Linux-Kommandozeile
  • Mindestens 2 GB freier Festplattenspeicher
  • Ein Benutzerkonto mit sudo-Berechtigung

Vergewissern Sie sich außerdem, dass Ihr System auf dem neuesten Stand ist, indem Sie vor der Installation alle verfügbaren Updates installieren.

Schritt-für-Schritt Anleitung

System aktualisieren und vorbereiten

Beginnen Sie damit, Ihr Rocky Linux System zu aktualisieren und die notwendigen Hilfsprogramme zu installieren:

sudo dnf update -y
sudo dnf install -y yum-utils device-mapper-persistent-data lvm2

Diese Pakete sind erforderlich, um Docker-Repositories hinzuzufügen und die Container-Speicherverwaltung zu unterstützen.

Docker-Repository hinzufügen

Da Rocky Linux binär-kompatibel mit Red Hat Enterprise Linux ist, verwenden wir das offizielle Docker-Repository für CentOS. Fügen Sie das Repository mit folgendem Befehl hinzu:

sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Aktualisieren Sie anschließend den Paket-Index, um die neuen Repository-Informationen zu laden:

sudo dnf makecache

Docker Engine installieren

Installieren Sie nun Docker Engine, Docker CLI und das Containerd-Runtime-System:

sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Diese Installation umfasst alle notwendigen Komponenten für einen vollständigen Docker-Betrieb, einschließlich der modernen Docker Compose-Integration als Plugin.

Docker-Service starten und aktivieren

Starten Sie den Docker-Daemon und aktivieren Sie ihn für den automatischen Start beim Systemboot:

sudo systemctl start docker
sudo systemctl enable docker

Der Docker-Daemon (dockerd) läuft als Root-Prozess und verwaltet alle Container-Operationen auf Ihrem System.

Benutzerberechtigungen konfigurieren

Standardmäßig benötigen Docker-Befehle Root-Berechtigung. Um Docker ohne sudo verwenden zu können, fügen Sie Ihren Benutzer zur Docker-Gruppe hinzu:

sudo usermod -aG docker $USER

Wichtiger Sicherheitshinweis: Die Mitgliedschaft in der Docker-Gruppe gewährt praktisch Root-Zugriff auf das System. Fügen Sie nur vertrauenswürdige Benutzer zu dieser Gruppe hinzu, da sie sensible Verzeichnisse einbinden und privilegierte Container erstellen können.

Melden Sie sich ab und wieder an, oder starten Sie eine neue Shell-Sitzung, damit die Gruppenmitgliedschaft wirksam wird:

newgrp docker

Erste Schritte mit Docker-Containern

Testen Sie die Installation mit dem klassischen „Hello World“-Container:

docker run hello-world

Dieser Befehl lädt das Hello-World-Image herunter und führt einen Container aus, der eine Bestätigungsnachricht ausgibt.

Für ein praktischeres Beispiel können Sie einen interaktiven Ubuntu-Container starten:

docker run -it ubuntu:latest /bin/bash

Der Parameter -i hält die Eingabe offen, während -t ein Terminal zuweist. Verlassen Sie den Container mit exit.

Docker-Images verwalten

Listen Sie alle verfügbaren Images auf Ihrem System auf:

docker images

Suchen Sie nach verfügbaren Images im Docker Hub:

docker search nginx

Laden Sie ein spezifisches Image herunter:

docker pull nginx:alpine

Container-Management

Starten Sie einen Nginx-Webserver-Container im Hintergrund:

docker run -d -p 8080:80 --name mein-nginx nginx:alpine

Zeigen Sie laufende Container an:

docker ps

Für alle Container (einschließlich gestoppter):

docker ps -a

Stoppen und entfernen Sie Container:

docker stop mein-nginx
docker rm mein-nginx

Docker Compose verwenden

Erstellen Sie eine einfache docker-compose.yml-Datei für eine Multi-Container-Anwendung:

version: '3.8'
services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html
  
  database:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: geheimespasswort
      MYSQL_DATABASE: meinedatenbank
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

Starten Sie die Anwendung mit dem modernen Docker Compose-Plugin:

docker compose up -d

Stoppen Sie die gesamte Anwendung:

docker compose down

Überprüfung

Verifizieren Sie Ihre Docker-Installation mit folgenden Befehlen:

Prüfen Sie die Docker-Version:

docker --version
docker compose version

Überprüfen Sie den Status des Docker-Service:

sudo systemctl status docker

Testen Sie die Docker-Funktionalität:

docker run --rm busybox echo "Docker funktioniert korrekt!"

Zeigen Sie Systeminformationen an:

docker system info

Bei erfolgreicher Installation sollten alle Befehle ohne Fehlermeldungen ausgeführt werden und aussagekräftige Informationen zurückgeben.

Troubleshooting

Docker-Daemon startet nicht

Falls der Docker-Service nicht startet, überprüfen Sie die Logs:

sudo journalctl -u docker.service

Häufige Ursachen sind Konflikte mit anderen Container-Runtimes oder unzureichende Systemressourcen.

Berechtigungsprobleme

Wenn Sie die Fehlermeldung „permission denied“ erhalten, stellen Sie sicher, dass:

  • Ihr Benutzer zur Docker-Gruppe gehört: groups $USER
  • Sie sich nach dem Hinzufügen zur Gruppe neu angemeldet haben
  • Der Docker-Service läuft: sudo systemctl status docker

Netzwerk-Probleme

Bei Verbindungsproblemen zwischen Containern prüfen Sie die Docker-Netzwerke:

docker network ls
docker network inspect bridge

Speicherplatz-Probleme

Räumen Sie nicht verwendete Container, Images und Volumes auf:

docker system prune -a

Seien Sie vorsichtig mit diesem Befehl, da er alle nicht verwendeten Ressourcen löscht.

Fazit

Sie haben erfolgreich Docker auf Rocky Linux installiert und die grundlegenden Konzepte kennengelernt. Docker bietet eine mächtige Plattform für die Containerisierung von Anwendungen und ist trotz der standardmäßigen Podman-Integration in Rocky Linux eine wertvolle Ergänzung für Entwicklungs- und Produktionsumgebungen.

Die Installation aus den offiziellen Docker-Repositories stellt sicher, dass Sie stets die neuesten Features und Sicherheitsupdates erhalten. Die Verwendung von Docker Compose als Plugin vereinfacht die Verwaltung komplexer Multi-Container-Anwendungen erheblich.

Denken Sie daran, dass Container-Änderungen standardmäßig flüchtig sind. Verwenden Sie Volumes für persistente Daten und beachten Sie die Sicherheitsimplikationen der Docker-Gruppenmitgliedschaft. Mit diesem soliden Fundament können Sie nun komplexere Docker-Workflows erkunden und Ihre Anwendungen effizient containerisieren.

Für weiterführende Themen empfiehlt es sich, die offizielle Docker-Dokumentation zu studieren und praktische Erfahrungen mit verschiedenen Container-Szenarien zu sammeln.