Powrót do strony głównej

Dokploy: instalacja platformy Docker Swarm

Dokploy — platforma do wdrażania kontenerów Docker i projektów GitHub na serwerach Linux. Opisana instalacja za pomocą skryptu: sprawdzanie portów, inicjalizacja Swarm, uruchomienie Postgres/Redis/Traefik. Nadaje się dla specjalistów middle/senior z naciskiem na automatyzację.

Szybkie wdrożenie Dokploy: projekty Docker i GitHub
Advertisement 728x90

Dokploy: wdrażanie kontenerów Docker za pomocą platformy open-source

Dokploy to open-source narzędzie do zautomatyzowanego wdrażania aplikacji w kontenerach Docker i repozytoriach GitHub. Platforma wykorzystuje Docker Swarm, Traefik do routingu oraz bazy PostgreSQL/Redis. Instalacja wymaga serwera Linux z minimum 2 GB RAM i 30 GB dysku, sprawdza dostępność portów 80, 443, 3000.

Wymagania systemowe i przygotowanie

Dokploy przetestowany na dystrybucjach:

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

Serwer musi mieć co najmniej 2 GB pamięci RAM do budowania obrazów Docker i 30 GB miejsca na dysku. Porty 80 (HTTP Traefik), 443 (HTTPS Traefik), 3000 (interfejs webowy) muszą być wolne — skrypt instalacyjny zakończy się błędem, jeśli są zajęte.

Google AdInline article slot

Przygotowanie:

  • Przejdź do trybu root: sudo -i.
  • Zatrzymaj usługi na portach 80, 443, 3000.
  • Upewnij się, że Docker jest zainstalowany, w przeciwnym razie skrypt zainstaluje wersję 28.5.0.

Skrypt automatycznie wykrywa wersję (domyślnie latest, obsługa canary/feature poprzez DOKPLOY_VERSION), sprawdza środowisko (Linux, nie kontener, nie macOS) i inicjuje Docker Swarm.

Proces instalacji za pomocą skryptu

Główny sposób — jednolinijkowe polecenie:

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

Skrypt wykonuje następujące kroki:

  • Sprawdza prawa root i wolne porty za pomocą ss -tulnp.
  • Instaluje Docker, jeśli nie jest obecny.
  • Wykrywa kontenery Proxmox LXC i stosuje --endpoint-mode dnsrr dla kompatybilności.
  • Określa adres IP serwera (IPv4/IPv6 za pomocą ifconfig.io, icanhazip.com, ipecho.net) dla ADVERTISE_ADDR.
  • Inicjuje Docker Swarm: docker swarm init --advertise-addr <ip>.
  • Tworzy sieć overlay dokploy-network.

Kluczowe fragmenty skryptu:

# 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
}

Po Swarm tworzone są serwisy:

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

Podobnie dla Redis (redis:7) i głównego kontenera Dokploy z montowaniem /var/run/docker.sock, /etc/dokploy, portem 3000 (tryb host).

Konfiguracja Traefik i uruchomienie

Traefik (v3.6.1) uruchamiany jest oddzielnie:

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

Podłączany do dokploy-network. Po 15 sekundach oczekiwania dostępny jest interfejs: http://<ip>:3000.

Możliwe problemy:

  • Błąd na zajętych portach — użyj ss -tulnp | grep :80 do diagnozy.
  • W LXC/Proxmox: automatyczne stosowanie trybu dnsrr.
  • Swarm nie inicjuje się — ustaw ADVERTISE_ADDR ręcznie lub DOCKER_SWARM_INIT_ARGS dla niestandardowych pul (np. --default-addr-pool 172.20.0.0/16).

Funkcjonalność po instalacji

Interfejs webowy na porcie 3000 pozwala na wdrażanie projektów z GitHub, zarządzanie kontenerami, konfigurację routingu Traefik. Platforma skierowana na self-hosted wdrożenia bez zewnętrznych zależności, integruje się z Docker Swarm do orkiestracji.

Zalety dla middle/senior DevOps:

  • Automatyczna obsługa IP (IPv4/IPv6).
  • Obsługa niestandardowych argumentów Swarm.
  • Minimalne zasoby w porównaniu do pełnych PaaS.
  • Open-source alternatywa dla Coolify z naciskiem na Docker.

Co ważne

  • Minimalne wymagania: 2 GB RAM, 30 GB dysk, Linux (Ubuntu/Debian/Fedora/CentOS).
  • Obowiązkowe porty: 80, 443, 3000 — skrypt blokuje instalację przy zajętości.
  • Docker Swarm: Autoinicjalizacja z advertise-addr, obsługa LXC dnsrr.
  • Usługi: Postgres:16, Redis:7, Traefik:v3.6.1, Dokploy:latest/canary/feature.
  • Dostęp: http://<server-ip>:3000 po 15 s.

— Editorial Team

Advertisement 728x90

Czytaj dalej