Zurück zur Startseite

Dokploy: Docker Swarm-Plattform-Installation

Dokploy ist eine Plattform zur Bereitstellung von Docker-Containern und GitHub-Projekten auf Linux-Servern. Beschreibt die Installation via Skript: Portprüfung, Swarm-Initialisierung, Starten von Postgres/Redis/Traefik. Geeignet für Middle-/Senior-Spezialisten mit Fokus auf Automatisierung.

Schnelle Dokploy-Bereitstellung: Docker- und GitHub-Projekte
Advertisement 728x90

Dokploy: Bereitstellen von Docker-Containern mit einer Open-Source-Plattform

Dokploy ist ein Open-Source-Tool für die automatisierte Bereitstellung von Anwendungen in Docker-Containern und GitHub-Repositories. Die Plattform verwendet Docker Swarm, Traefik für das Routing und PostgreSQL/Redis-Datenbanken. Die Installation erfordert einen Linux-Server mit mindestens 2 GB RAM und 30 GB Festplattenplatz und prüft die Verfügbarkeit der Ports 80, 443, 3000.

Systemanforderungen und Vorbereitung

Dokploy wurde auf folgenden Distributionen getestet:

  • Ubuntu 24.04 LTS, 23.10, 22.04 LTS, 20.04 LTS, 18.04 LTS
  • Debian 12, 11, 10
  • Fedora 40
  • CentOS 9, 8

Der Server muss mindestens 2 GB RAM für das Erstellen von Docker-Images und 30 GB Festplattenplatz haben. Die Ports 80 (HTTP Traefik), 443 (HTTPS Traefik) und 3000 (Weboberfläche) müssen frei sein – das Installationsskript schlägt fehl, wenn sie belegt sind.

Google AdInline article slot

Vorbereitung:

  • Zu root wechseln: sudo -i.
  • Dienste auf den Ports 80, 443, 3000 stoppen.
  • Sicherstellen, dass Docker installiert ist, andernfalls installiert das Skript Version 28.5.0.

Das Skript erkennt automatisch die Version (Standard: latest, mit Unterstützung für canary/feature über DOKPLOY_VERSION), prüft die Umgebung (Linux, kein Container, kein macOS) und initialisiert Docker Swarm.

Installationsprozess über Skript

Die primäre Methode ist ein Einzeiler-Befehl:

Google AdInline article slot
curl -sSL https://dokploy.com/install.sh | sh

Das Skript führt folgende Schritte aus:

  • Prüft Root-Rechte und freie Ports mit ss -tulnp.
  • Installiert Docker, falls fehlend.
  • Erkennt Proxmox LXC-Container und wendet --endpoint-mode dnsrr für Kompatibilität an.
  • Ermittelt die IP-Adresse des Servers (IPv4/IPv6 über ifconfig.io, icanhazip.com, ipecho.net) für ADVERTISE_ADDR.
  • Initialisiert Docker Swarm: docker swarm init --advertise-addr <ip>.
  • Erstellt das Overlay-Netzwerk dokploy-network.

Wichtige Skript-Ausschnitte:

# Opredelenie versii
 detect_version() {
    local version="${DOKPLOY_VERSION:-latest}"
    echo "$version"
}

# Check Proxmox LXC
is_proxmox_lxc() {
    if [ -n "$container" ] && [ "$container" = "lxc" ]; then
        return 0
    fi
    if grep -q "container=lxc" /proc/1/environ 2>/dev/null; then
        return 0
    fi
    return 1
}

Nach der Swarm-Initialisierung werden Dienste erstellt:

Google AdInline article slot
docker service create \
  --name dokploy-postgres \
  --network dokploy-network \
  --env POSTGRES_USER=dokploy \
  --env POSTGRES_DB=dokploy \
  --env POSTGRES_PASSWORD=amukds4wi9001583845717ad2 \
  postgres:16

Ähnlich für Redis (redis:7) und den Haupt-Dokploy-Container mit Mounts für /var/run/docker.sock, /etc/dokploy und Port 3000 (Host-Modus).

Traefik-Einrichtung und Start

Traefik (v3.6.1) wird separat gestartet:

docker run -d \
    --name dokploy-traefik \
    --restart always \
    -v /etc/dokploy/traefik/traefik.yml:/etc/traefik/traefik.yml \
    -v /var/run/docker.sock:/var/run/docker.sock:ro \
    -p 80:80/tcp -p 443:443/tcp -p 443:443/udp \
    traefik:v3.6.1

Es verbindet sich mit dokploy-network. Nach einer Wartezeit von 15 Sekunden ist die Oberfläche unter: http://<ip>:3000 verfügbar.

Mögliche Probleme:

  • Fehler bei belegten Ports – ss -tulnp | grep :80 für Diagnose verwenden.
  • In LXC/Proxmox: automatisches Anwenden des dnsrr-Modus.
  • Swarm-Initialisierung schlägt fehl – ADVERTISE_ADDR manuell setzen oder DOCKER_SWARM_INIT_ARGS für benutzerdefinierte Pools (z. B. --default-addr-pool 172.20.0.0/16).

Funktionalität nach der Installation

Die Weboberfläche auf Port 3000 ermöglicht das Bereitstellen von Projekten aus GitHub, das Verwalten von Containern und die Konfiguration des Traefik-Routings. Die Plattform konzentriert sich auf selbstgehostete Bereitstellungen ohne externe Abhängigkeiten und integriert sich mit Docker Swarm für die Orchestrierung.

Vorteile für Middle/Senior DevOps:

  • Automatische IP-Behandlung (IPv4/IPv6).
  • Unterstützung für benutzerdefinierte Swarm-Argumente.
  • Minimale Ressourcen im Vergleich zu vollständigen PaaS-Lösungen.
  • Open-Source-Alternative zu Coolify mit Fokus auf Docker.

Wichtige Punkte

  • Mindestanforderungen: 2 GB RAM, 30 GB Festplatte, Linux (Ubuntu/Debian/Fedora/CentOS).
  • Benötigte Ports: 80, 443, 3000 – das Skript blockiert die Installation, wenn belegt.
  • Docker Swarm: Auto-Initialisierung mit advertise-addr, LXC dnsrr-Unterstützung.
  • Services: Postgres:16, Redis:7, Traefik:v3.6.1, Dokploy:latest/canary/feature.
  • Zugriff: http://<server-ip>:3000 nach 15 Sekunden.

— Editorial Team

Advertisement 728x90

Weiterlesen