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.











