Container & DevOps

Docker & Compose auf Netcup VPS: Sichere Installation & Härtung

Schritt-für-Schritt-Anleitung für Docker CE auf Debian 12 / Ubuntu 24.04. Behebt die gefährliche UFW-Bypass-Sicherheitslücke und optimiert Logging.

M
Markus S. (Senior Linux Sysadmin)
Geprüft & Verifiziert: September 2026
⏱️ ca. 12 Min. Lesezeit

1. Vorbereitung & Offizielles Docker-Repository

Verwenden Sie nicht das veraltete docker.io-Paket aus den Standard-Repositories, sondern binden Sie das offizielle Docker-Apt-Repository ein:

Adding official Docker GPG key & repo

# 1. Veraltete Pakete deinstallieren

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do apt-get remove -y $pkg; done

# 2. Paket-Abhängigkeiten und GPG-Schlüssel laden

apt-get update && apt-get install -y ca-certificates curl gnupg

install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/$(. /etc/os-release && echo "$ID")/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg

chmod a+r /etc/apt/keyrings/docker.gpg

# 3. Offizielles apt-Repository eintragen

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$(. /etc/os-release && echo "$ID") $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

2. Docker CE & Compose v2 Installation

apt-get update

apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Nicht-Root-Benutzer der Docker-Gruppe zuweisen

usermod -aG docker $USER

# Versionen prüfen

docker --version && docker compose version

3. daemon.json Konfiguration (Log-Limits)

In der Standardeinstellung wachsen Container-Logs unbegrenzt an. Begrenzen Sie die Logs über /etc/docker/daemon.json und aktivieren Sie live-restore:

/etc/docker/daemon.json

{

  "log-driver": "json-file",

  "log-opts": {

    "max-size": "50m",

    "max-file": "3"

  },

  "live-restore": true,

  "features": {

    "buildkit": true

  }

}

systemctl restart docker

4. Sicherheitsfix: Docker UFW-Bypass

🚨 Wichtiger Sicherheitshinweis:

Docker greift direkt in die iptables-Regeln ein und umgeht UFW vollständig. Jeder Port, der per -p 8080:80 freigegeben wird, ist für das gesamte Internet erreichbar – selbst wenn UFW alle eingehenden Ports sperrt.

✅ Lösung A: Bindung an Localhost (127.0.0.1)

Geben Sie Ports in Compose als 127.0.0.1:8080:80 an, damit nur der lokale Reverse Proxy Zugriff erhält.

✅ Lösung B: ufw-docker Patch installieren

wget -O /usr/local/bin/ufw-docker https://github.com/chaifeng/ufw-docker/raw/master/ufw-docker

chmod +x /usr/local/bin/ufw-docker

ufw-docker install

systemctl restart ufw

5. Compose-Boilerplate: Nginx & Let's Encrypt

Ein produktionsreifes Docker Compose Boilerplate für Reverse-Proxy-Setups:

docker-compose.yml

services:

  app:

    image: nginx:alpine

    container_name: web_service

    restart: unless-stopped

    ports:

      - "127.0.0.1:8080:80"

    volumes:

      - ./html:/usr/share/nginx/html:ro

    networks:

      - internal_net

networks:

  internal_net:

    driver: bridge

6. Portainer CE Dashboard installieren

Portainer CE bietet eine übersichtliche Web-Oberfläche zur Verwaltung von Containern, Logs und Volumes:

docker volume create portainer_data

docker run -d -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

Rufen Sie https://<IHRE_SERVER_IP>:9443 im Browser auf, um den Administrator-Zugang einzurichten.

7. Wartung & Bereinigung (docker system prune)

Regelmäßige Bereinigung verwaister Images und Build-Caches hält die NVMe-Festplatte frei:

# 1. Speicherbelegung prüfen

docker system df

# 2. Nicht genutzte Ressourcen entfernen

docker system prune -f

# 3. Vollständige Bereinigung inkl. Volumes

docker system prune -a --volumes -f

8. Häufig gestellte Fragen (FAQ)

Q: Warum blockiert UFW keine Ports, die über Docker freigegeben wurden?

Docker greift direkt in die iptables NAT-Tabelle ein. Diese PREROUTING-Kette greift vor der INPUT-Filterung von UFW. Daher sind mit -p gemappte Ports weltweit offen, sofern man sie nicht an 127.0.0.1 bindet oder das Tool ufw-docker einsetzt.

Q: Was tun, wenn /var/lib/docker/overlay2 den Speicherplatz füllt?

Prüfen Sie mit "docker system df" die Ursache. Führen Sie "docker system prune -a --volumes" aus, um ungenutzte Images und Volumes zu entfernen. Begrenzen Sie zudem Container-Logs in der daemon.json auf 50 MB.

Q: Gibt es Unterschiede zwischen lokalem Docker Compose und dem Einsatz auf Netcup VPS?

In der Produktion sollten Sie: 1. Feste Image-Tags statt "latest" verwenden; 2. "restart: unless-stopped" für automatischen Neustart nach Reboots deklarieren; 3. Datenbank-Ports niemals öffentlich mappen, sondern interne Docker-Netzwerke nutzen.

Q: Verringert Docker die Performance auf Netcup AMD EPYC Servern?

Nein, der Overhead liegt unter 1%. Da Docker auf Linux Cgroups und Namespaces basiert, greifen Container ohne Hardware-Emulation direkt auf CPU und NVMe-Speicher zu.

MS
Autor & Leitender Systemprüfer10+ Jahre Erfahrung in europäischen Rechenzentren

Markus S.

Senior Cloud Infrastructure Architect & Linux Sysadmin

Markus ist spezialisiert auf europäische Cloud-Infrastrukturen und Linux-Performance. Sämtliche Benchmarks, Konfigurationsanleitungen und Steuerbefreiungstests basieren auf selbstfinanzierten Netcup RS/VPS-Systemen im Nürnberger Rechenzentrum (AMD EPYC Architektur).

🛡️100% Redaktionell unabhängig (selbstfinanzierte Testsysteme)
Reale Hardware-Tests (Netcup RS G12 / AMD EPYC)
🔄Täglich automatisiert validierte Gutscheincodes
Transparenz & Redaktionelle Unabhängigkeit: Netcup.Discount wahrt strikte redaktionelle Unabhängigkeit. Eventuelle Affiliate-Vergütungen haben keinerlei Einfluss auf Testergebnisse, Benchmarks oder Empfehlungen.
⚡ Echtzeit-synchronisierter Pool

💰 Geprüfte Netcup Gutscheine & Rabatte

Wir pflegen eine aktuelle Sammlung verifizierter Netcup-Gutscheincodes mit automatischer Echtzeit-Synchronisierung. Bis zu 30% Rabatt oder kostenlose Monate.

Alle Gutscheine ansehen →