Docker Auf 2 Rechner Installieren

Docker auf 2 Rechner Installations-Kalkulator

Berechnen Sie die optimalen Einstellungen für Ihre Docker-Installation auf zwei Computern

Empfohlene Docker-Engine Version:
Maximale Container pro Rechner:
Empfohlene Ressourcenallokation:
Netzwerkkonfiguration:
Speicherkonfiguration:
Sicherheitsempfehlungen:

Umfassender Leitfaden: Docker auf 2 Rechnern installieren und konfigurieren

Die Installation von Docker auf zwei Rechnern ermöglicht erweiterte Szenarien wie Lastverteilung, Hochverfügbarkeit oder getrennte Entwicklungsumgebungen. Dieser Leitfaden führt Sie durch alle notwendigen Schritte und Best Practices für eine professionelle Docker-Installation auf zwei Computern.

1. Vorbereitung der Systeme

Bevor Sie mit der Docker-Installation beginnen, sollten Sie beide Rechner entsprechend vorbereiten:

  • Hardware-Anforderungen prüfen: Docker läuft auf den meisten modernen Systemen, aber für optimale Performance empfehlen wir mindestens 2 GB RAM und 2 CPU-Kerne pro Rechner.
  • Betriebssystem aktualisieren: Stellen Sie sicher, dass beide Systeme auf dem neuesten Stand sind.
  • Netzwerkkonnektivität testen: Die Rechner sollten sich gegenseitig erreichen können (ping, SSH).
  • Benutzerrechte klären: Sie benötigen Administrator-/Root-Rechte für die Installation.
# Systemupdate für Ubuntu/Debian
sudo apt update && sudo apt upgrade -y

# Für CentOS/RHEL
sudo yum update -y

2. Docker-Installation auf beiden Rechnern

Die Installation variiert je nach Betriebssystem. Wir behandeln die gängigsten Varianten:

2.1 Docker auf Linux installieren (empfohlene Methode)

  1. Voraussetzungen installieren:
    sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
  2. Offiziellen Docker-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
  3. Docker-Repository hinzufügen:
    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
  4. Docker installieren:
    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io
  5. Docker-Dienst starten und aktivieren:
    sudo systemctl enable docker –now
    sudo systemctl status docker

2.2 Docker auf Windows installieren

Für Windows 10/11 Pro/Enterprise:

  1. Laden Sie Docker Desktop für Windows herunter
  2. Führen Sie den Installer mit Administratorrechten aus
  3. Aktivieren Sie während der Installation “Use WSL 2 based engine”
  4. Starten Sie nach der Installation Docker Desktop aus dem Startmenü
  5. Führen Sie im PowerShell als Administrator aus:
    wsl –install -d docker-desktop
    wsl –set-default-version 2

2.3 Docker auf macOS installieren

Für macOS (Intel und Apple Silicon):

  1. Laden Sie Docker Desktop für Mac herunter
  2. Ziehen Sie Docker in den Applications-Ordner
  3. Starten Sie Docker Desktop aus dem Applications-Ordner
  4. Erteilen Sie die notwendigen Berechtigungen in den Systemeinstellungen
  5. Überprüfen Sie die Installation mit:
    docker –version
    docker-compose –version
    docker-machine –version

3. Netzwerkkonfiguration für die Kommunikation zwischen den Rechnern

Damit die beiden Docker-Hosts kommunizieren können, müssen Sie das Netzwerk entsprechend konfigurieren:

3.1 Grundlegende Netzwerkeinrichtung

  • Statische IP-Adressen: Weisen Sie beiden Rechnern statische IPs im selben Subnetz zu
  • Hostnamen konfigurieren: Bearbeiten Sie die /etc/hosts-Datei auf beiden Rechnern:
    192.168.1.100 docker-host1
    192.168.1.101 docker-host2
  • Firewall-Regeln: Erlauben Sie den Docker-Port (standardmäßig 2375/2376):
    # Für UFW (Ubuntu)
    sudo ufw allow 2375/tcp
    sudo ufw allow 2376/tcp
    sudo ufw allow 7946/tcp
    sudo ufw allow 7946/udp
    sudo ufw allow 4789/udp

3.2 Docker Swarm einrichten (für Cluster-Betrieb)

Für eine hochverfügbare Umgebung können Sie einen Docker Swarm einrichten:

# Auf dem Manager-Knoten (Hauptrechner)
docker swarm init –advertise-addr 192.168.1.100

# Der Befehl gibt einen Join-Token aus, z.B.:
# docker swarm join –token SWMTKN-1-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-YYYYYYYYYYYYYYYYYYYYYYYY 192.168.1.100:2377

# Auf dem Worker-Knoten (Zweitrechner)
docker swarm join –token SWMTKN-1-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-YYYYYYYYYYYYYYYYYYYYYYYY 192.168.1.100:2377

Überprüfen Sie den Status des Swarms:

docker node ls

4. Gemeinsame Nutzung von Docker-Images und Volumes

Um Images und Daten zwischen den Rechnern zu teilen, haben Sie mehrere Optionen:

4.1 Private Docker Registry einrichten

  1. Erstellen Sie auf einem der Rechner eine private Registry:
    docker run -d -p 5000:5000 –restart=always –name registry registry:2
  2. Konfigurieren Sie Docker, um die unsichere Registry zu vertrauen (auf beiden Rechnern):
    # Bearbeiten Sie /etc/docker/daemon.json
    {
      “insecure-registries”: [“192.168.1.100:5000”]
    }
  3. Neustart des Docker-Dienstes:
    sudo systemctl restart docker
  4. Images in die Registry pushen:
    docker tag mein-image 192.168.1.100:5000/mein-image
    docker push 192.168.1.100:5000/mein-image

4.2 NFS für gemeinsame Volumes

Für gemeinsame Datenvolumes können Sie NFS (Network File System) verwenden:

  1. Installieren Sie den NFS-Server auf dem Rechner, der die Daten hostet:
    sudo apt install nfs-kernel-server
  2. Konfigurieren Sie die Exports in /etc/exports:
    /docker/volumes 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
  3. Starten Sie den NFS-Server neu:
    sudo exportfs -a
    sudo systemctl restart nfs-kernel-server
  4. Auf dem Client-Rechner installieren Sie den NFS-Client:
    sudo apt install nfs-common
  5. Mounten Sie das Volume:
    sudo mount -t nfs 192.168.1.100:/docker/volumes /mnt/docker/volumes

5. Sicherheitstipps für verteilte Docker-Installationen

Bei der Nutzung von Docker auf mehreren Rechnern sind besondere Sicherheitsmaßnahmen erforderlich:

  • TLS-Verschlüsselung aktivieren: Konfigurieren Sie Docker für sichere Remote-Verbindungen mit TLS-Zertifikaten
  • Benutzerrechte einschränken: Fügen Sie nur vertrauenswürdige Benutzer der docker-Gruppe hinzu
  • Regelmäßige Updates: Halten Sie Docker und das Host-System immer auf dem neuesten Stand
  • Netzwerksegmentierung: Isolieren Sie Docker-Hosts in einem separaten Netzwerksegment
  • Monitoring einrichten: Überwachen Sie die Docker-Aktivität mit Tools wie cAdvisor oder Prometheus
# TLS für Docker Remote API konfigurieren
# 1. Zertifikate generieren (auf beiden Rechnern)
openssl genrsa -aes256 -out ca-key.pem 4096
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem

# 2. Server-Zertifikat erstellen
openssl genrsa -out server-key.pem 4096
openssl req -subj “/CN=$HOSTNAME” -sha256 -new -key server-key.pem -out server.csr
echo subjectAltName = DNS:$HOSTNAME,IP:192.168.1.100,IP:127.0.0.1 >> extfile.cnf
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf

# 3. Client-Zertifikat erstellen
openssl genrsa -out key.pem 4096
openssl req -subj ‘/CN=client’ -new -key key.pem -out client.csr
echo extendedKeyUsage = clientAuth >> extfile.cnf
openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf

# 4. Docker für TLS konfigurieren (in /etc/docker/daemon.json)
{
  “hosts”: [“fd://”, “tcp://192.168.1.100:2376”],
  “tls”: true,
  “tlscacert”: “/etc/docker/ca.pem”,
  “tlscert”: “/etc/docker/server-cert.pem”,
  “tlskey”: “/etc/docker/server-key.pem”
}

6. Performance-Optimierung für verteilte Docker-Umgebungen

Für optimale Performance sollten Sie folgende Aspekte beachten:

Komponente Empfohlene Einstellung Auswirkung
Speicher-Backend overlay2 (Linux)
WSL 2 (Windows)
Bessere Performance und Stabilität
Log-Treiber json-file (mit size/max-file Limit) Verhindert Speicherüberlauf durch Logs
Netzwerk-Modus overlay (für Swarm)
bridge (für Einzelhosts)
Optimale Netzwerkperformance
CPU-Pinning Dedizierte Kerne für Docker Reduziert Latenz und verbessert Performance
Memory-Limits 80% des physischen RAM Verhindert Systeminstabilität

Für CPU-Pinning können Sie die Docker-Daemon-Konfiguration anpassen:

# Bearbeiten Sie /etc/docker/daemon.json
{
  “default-ulimits”: {
    “nproc”: 65535,
    “nofile”: {
      “Name”: “nofile”,
      “Hard”: 65535,
      “Soft”: 65535
    }
  },
  “cpus”: “0-3”, # Dedizierte Kerne
  “cpu-shares”: 768,
  “storage-driver”: “overlay2”
}

7. Troubleshooting häufiger Probleme

Bei der Einrichtung von Docker auf zwei Rechnern können folgende Probleme auftreten:

Problem Mögliche Ursache Lösungsansatz
Keine Verbindung zwischen Hosts Firewall blockiert Ports Ports 2375-2377, 7946, 4789 freigeben
“Permission denied” bei Docker-Befehlen Benutzer nicht in docker-Gruppe sudo usermod -aG docker $USER
Langsame Performance Netzwerklatenz oder Speicher-Backend overlay2 verwenden, Netzwerk optimieren
Container starten nicht Falsche Architektur (ARM/x86) Multi-Arch Images verwenden
Swarm Join fehlgeschlagen Uhrzeit nicht synchronisiert NTP-Server konfigurieren

Für detaillierte Fehlersuche können Sie folgende Befehle verwenden:

# Docker-Logs anzeigen
journalctl -u docker.service

# Systeminformationen sammeln
docker info
docker version
docker stats –no-stream

# Netzwerkdiagnose
ping 192.168.1.101
telnet 192.168.1.100 2376
nslookup docker-host1

8. Erweiterte Konfiguration: Docker über mehrere Standorte

Für Rechner an verschiedenen Standorten benötigen Sie zusätzliche Maßnahmen:

  • VPN-Tunnel einrichten: Nutzen Sie WireGuard oder OpenVPN für sichere Verbindungen
    # WireGuard Installation (Ubuntu)
    sudo apt install wireguard resolvconf
    wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
  • Docker Contexts nutzen: Verwalten Sie mehrere Docker-Hosts einfach
    # Neuen Context erstellen
    docker context create remote-host –docker “host=ssh://user@192.168.1.101”

    # Context verwenden
    docker context use remote-host

    # Zurück zum lokalen Context
    docker context use default
  • Georeplizierte Registry: Nutzen Sie Dienstleister wie AWS ECR oder selbstgehostete Lösungen mit Replikation

9. Best Practices für die Wartung

Regelmäßige Wartung ist essenziell für stabile Docker-Umgebungen:

  1. Wöchentliche Aufgaben:
    • Docker-Images bereinigen: docker system prune
    • Container-Logs rotieren
    • Sicherheitsupdates installieren
  2. Monatliche Aufgaben:
    • Docker-Version prüfen und ggf. updaten
    • Backup der Docker-Volumes erstellen
    • Performance-Metriken auswerten
  3. Jährliche Aufgaben:
    • Komplette Neuinstallation erwägen (bei starken Performance-Problemen)
    • Hardware-Upgrade prüfen
    • Sicherheitsaudit durchführen
# Komplettes Bereinigungs-Skript
#!/bin/bash

# Alte Container, Images und Netzwerke bereinigen
docker system prune -a -f

# Volumes sichern (Beispiel)
tar -czvf docker-volumes-$(date +%Y%m%d).tar.gz /var/lib/docker/volumes

# Docker neu starten
sudo systemctl restart docker

# Systemneustart (optional)
# sudo reboot

10. Rechtliche und Compliance-Aspekte

Bei der Nutzung von Docker in Unternehmensumgebungen oder mit sensiblen Daten sind folgende Punkte zu beachten:

  • Lizenzierung: Docker Desktop erfordert für Unternehmen eine kommerzielle Lizenz
  • Datenschutz: Bei Verarbeitung personenbezogener Daten gelten DSGVO/Vorschriften Ihres Landes
  • Sicherheitsstandards: Für bestimmte Branchen (z.B. Gesundheitswesen) gelten zusätzliche Anforderungen wie HIPAA
  • Image-Lizenzen: Prüfen Sie die Lizenzen aller verwendeten Basis-Images und Software

Die NIST Richtlinie SP 800-190 (National Institute of Standards and Technology) bietet umfassende Empfehlungen für Container-Sicherheit in Unternehmensumgebungen.

Für Bildungseinrichtungen bietet die MIT Cybersecurity Clinic wertvolle Ressourcen zur sicheren Implementierung von Container-Technologien in akademischen Umgebungen.

11. Zukunftsausblick: Docker in verteilten Umgebungen

Die Entwicklung von Docker und Container-Technologien schreitet schnell voran. Aktuelle Trends und zukünftige Entwicklungen umfassen:

  • Edge Computing: Docker auf IoT-Geräten und Edge-Servern wird immer wichtiger
  • Serverless Containers: Kombination von Docker mit Serverless-Architekturen (z.B. AWS Fargate)
  • Confidential Computing: Hardware-basierte Verschlüsselung für Container (z.B. mit Intel SGX)
  • KI/ML Workloads: Spezialisierte Container für Machine-Learning-Anwendungen
  • Multi-Cloud Orchestration: Tools wie Kubernetes werden immer besser in die Docker-Ökosysteme integriert

Die NIST Container Security Initiative forscht aktiv an Standards für sichere Container-Implementierungen in verteilten Umgebungen und veröffentlicht regelmäßig aktuelle Empfehlungen.

Leave a Reply

Your email address will not be published. Required fields are marked *