Docker Installation auf Debian: Stabiler Setup für Produktion

Docker ist eine zentrale Technologie für die Containerisierung von Anwendungen und wird zunehmend in Produktionsumgebungen eingesetzt. Auf Debian-Systemen ermöglicht Docker die effiziente Bereitstellung von Anwendungen, Microservices und CI/CD-Pipelines. In diesem Tutorial zeigen wir, wie Sie Docker auf Debian stabil installieren und konfigurieren, sodass es für den produktiven Einsatz optimiert ist.

Voraussetzungen

Bevor Sie mit der Installation beginnen, sollten einige Voraussetzungen erfüllt sein:

  • Debian 11 (Bullseye) oder neuer
  • Root-Zugriff oder ein Benutzer mit sudo-Rechten
  • Aktualisierte Paketquellen
  • Stabile Internetverbindung für Paket-Downloads

System vorbereiten

Ein sauberes System mit aktuellen Paketen ist die Basis für eine stabile Docker-Installation.

Paketquellen aktualisieren

sudo apt update
sudo apt upgrade -y

Erforderliche Abhängigkeiten installieren

Docker benötigt einige Pakete für sichere Installation und Verwaltung:

sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release software-properties-common

Offizielles Docker-Repository hinzufügen

Die Verwendung des offiziellen Docker-Repositories stellt sicher, dass Sie stabile und aktuelle Versionen erhalten.

GPG-Schlüssel importieren

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Repository hinzufügen

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list >/dev/null

Docker Engine installieren

Nach dem Hinzufügen des Repositories können die Docker-Pakete installiert werden:

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

Docker-Dienst starten und aktivieren

sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker

Installation prüfen

Testen Sie die Installation mit einem einfachen Container:

sudo docker run hello-world

Rootless Mode für erhöhte Sicherheit

Um Sicherheitsrisiken zu minimieren, kann Docker ohne Root-Rechte betrieben werden:

dockerd-rootless-setuptool.sh install
export PATH=$HOME/bin:$PATH
export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock
docker run hello-world

Netzwerk- und Firewall-Konfiguration

Für Produktionssysteme sollten nur benötigte Ports geöffnet werden und Container in isolierten Netzwerken laufen:

docker network create --driver bridge prod_net
docker run -d --network prod_net -p 8080:80 nginx

Storage Driver und Volumes

Die Wahl des Storage Drivers und die Nutzung von Volumes ist entscheidend für Performance und Persistenz:

Storage Driver prüfen

docker info | grep "Storage Driver"

Empfohlener Storage Driver

  • overlay2: Standard für moderne Debian-Kernel, hohe Performance und Stabilität
  • Persistente Daten über Volumes speichern:
  • docker volume create prod_data
    docker run -d -v prod_data:/var/lib/mysql mysql

Logging konfigurieren

Logs sollten rotieren, um Speicherplatz zu sparen und Performance zu gewährleisten:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

Docker Compose installieren

Für Multi-Container-Anwendungen empfiehlt sich Docker Compose:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

Monitoring und Wartung

  • Ressourcenverbrauch überwachen:
    docker stats
  • Laufende Container prüfen:
    docker ps
  • Nicht benötigte Container und Images aufräumen:
    docker system prune -a
  • Regelmäßige Updates von Docker Engine und Host-System durchführen

Best Practices für Produktionsserver

  • Rootless Docker oder eingeschränkte Benutzerrechte verwenden
  • Nur vertrauenswürdige, offizielle Images einsetzen
  • Persistente Daten über Volumes sichern
  • Logging und Log-Rotation konfigurieren
  • Firewall-Regeln und Netzwerke sorgfältig planen
  • Healthchecks für kritische Container implementieren
  • CI/CD-Pipelines auf separaten Testumgebungen validieren

Tipps für eine stabile Produktion

  • Automatisierte Installations- und Update-Skripte verwenden
  • Container-Images regelmäßig auf Sicherheitslücken scannen
  • Ressourcenlimits für Container setzen:
    docker run -d --memory="512m" --cpus="1.0" myapp
  • Docker Compose oder Orchestrierungstools für Multi-Container-Anwendungen einsetzen
  • Backups für Volumes und Datenbanken regelmäßig erstellen

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles