Docker ist eine zentrale Technologie für die Containerisierung von Anwendungen und ermöglicht Entwicklern sowie IT-Profis, Software konsistent, portabel und effizient auszuführen. Auf Ubuntu-Servern bildet Docker die Basis für moderne DevOps-Workflows, CI/CD-Pipelines und Microservices-Architekturen. In diesem Tutorial zeigen wir Best Practices für die Installation und Konfiguration von Docker auf Ubuntu Servern im Jahr 2026.
Voraussetzungen
Bevor Sie Docker auf einem Ubuntu-Server installieren, sollten einige Voraussetzungen erfüllt sein, um eine sichere und performante Umgebung zu gewährleisten:
- Aktuelle Ubuntu-Serverversion (20.04 LTS, 22.04 LTS oder neuer)
- Root-Zugriff oder Benutzer mit
sudo-Rechten - Stabile Internetverbindung für Paket-Downloads
- Aktualisierte Systempakete
System vorbereiten
Ein sauberes und aktualisiertes System ist die Grundlage für eine stabile Docker-Installation.
Paketquellen aktualisieren
sudo apt update
sudo apt upgrade -y
Erforderliche Pakete installieren
Docker benötigt einige Abhängigkeiten für die sichere Paketinstallation und Verwaltung:
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
Offizielles Docker-Repository hinzufügen
Für aktuelle Versionen ist es empfehlenswert, das offizielle Docker-Repository zu verwenden:
GPG-Schlüssel hinzufügen
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Repository eintragen
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list >/dev/null
Docker Engine installieren
Nachdem das Repository hinzugefügt wurde, kann Docker 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 Docker für erhöhte Sicherheit
Um Sicherheitsrisiken zu minimieren, kann Docker im Rootless Mode betrieben werden, sodass Container ohne Root-Rechte laufen:
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
Docker erstellt standardmäßig Bridge-Netzwerke. Für sichere Server-Umgebungen sollten Ports nur bei Bedarf freigegeben werden:
docker network create --driver bridge mein_net
docker run -d --network mein_net -p 8080:80 nginx
Firewall-Regeln prüfen und nur notwendige Ports öffnen.
Storage Driver und Volumes
Die Wahl des richtigen Storage Drivers und die Nutzung von Volumes verbessern Performance und Datenpersistenz:
Storage Driver prüfen
docker info | grep "Storage Driver"
Empfohlener Driver
- overlay2: Standard auf modernen Linux-Kernels, hohe Performance und Stabilität
- Volumes für persistente Daten nutzen:
docker volume create data_volume
docker run -d -v data_volume:/var/lib/mysql mysql
Logging konfigurieren
Logs sollten so konfiguriert werden, dass sie nicht den gesamten Speicher des Servers belegen:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
Docker Compose installieren
Docker Compose erleichtert das Starten von Multi-Container-Anwendungen:
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 Images und Container aufräumen:
docker system prune -a - Regelmäßige Updates von Docker Engine und Host-System durchführen
Best Practices für Produktivsysteme
- Rootless Mode oder eingeschränkte Benutzerrechte verwenden
- Nur vertrauenswürdige, offizielle Images einsetzen
- Volumes für persistente Daten und Backups nutzen
- Logging und Log-Rotation konfigurieren
- Firewall-Regeln und Netzwerke sorgfältig planen
- CI/CD-Pipelines auf separaten Testumgebungen prüfen
- Monitoring und Healthchecks für kritische Dienste aktivieren
Tipps für die Praxis
- Automatisierte Skripte für Installation und Updates verwenden
- Container-Images regelmäßig auf Sicherheitslücken scannen
- Ressourcenlimits für Container festlegen:
docker run -d --memory="512m" --cpus="1.0" myapp - Docker Compose für Multi-Container-Umgebungen einsetzen
- Snapshots und Backups für Volumes 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.











