Docker na VPS — instalacja, Compose i bezpieczeństwo
Opublikowano: 8 kwietnia 2026 · Kategoria: VPS i serwery
Krótka odpowiedź: Docker na VPS wymaga minimum 2 GB RAM i KVM wirtualizacji. Instalacja
na Ubuntu 22.04 zajmuje kilka minut — Docker Compose v2 jest wbudowany. Dla produkcji kluczowe jest
ograniczenie zasobów kontenerów i prawidłowa konfiguracja firewall.
Wymagania VPS dla Dockera
Parametr
Minimum
Zalecane (prod)
RAM
1 GB
2–4 GB
CPU
1 vCPU
2–4 vCPU
Dysk
20 GB SSD
40–80 GB SSD
System operacyjny
Linux 64-bit
Ubuntu 22.04 LTS / Debian 12
Wirtualizacja
KVM lub Xen
KVM (Docker wymaga izolacji kernela)
Kernel
5.4+
6.x (Ubuntu 22.04+)
Uwaga: OpenVZ i Virtuozzo (starsze VPS) często nie obsługują Dockera ze względu
na współdzielony kernel. Przed zakupem VPS sprawdź typ wirtualizacji — poszukaj virt-what lub zapytaj support dostawcy.
Docker domyślnie manipuluje iptables bezpośrednio, omijając reguły UFW. Jeśli wyeksponujesz
port w Docker (ports: "5432:5432"), będzie dostępny publicznie mimo reguły UFW
blokującej port 5432.
Rozwiązanie — binduj porty tylko na localhost:
ports:
- "127.0.0.1:5432:5432" # Tylko localhost, nie publicznie
Limit zasobów — obowiązkowy na shared VPS
# W docker-compose.yml
mem_limit: 512m # Limit pamięci RAM
memswap_limit: 512m # Wyłącz swap dla kontenera
cpus: 1.5 # Limit CPU (1.5 core)
Minimalne wymagania: 1 GB RAM (2 GB zalecane), 20 GB SSD, Linux 64-bit (Ubuntu 22.04 LTS / Debian 12 zalecane). Dla typowego projektu webowego (Nginx + PHP-FPM + MySQL + Redis): 2 GB RAM, 40 GB SSD. Docker Engine wymaga kernela Linux 5.4+ (domyślny na Ubuntu 22.04). VPS na KVM/Xen wirtualizacji — OpenVZ może nie obsługiwać Dockera ze względu na ograniczenia kernela. Sprawdź u dostawcy VPS przed zakupem.
Jak bezpiecznie uruchomić Dockera na VPS produkcyjnym?
›
Kluczowe zasady bezpieczeństwa: (1) Nie uruchamiaj kontenerów jako root — używaj USER w Dockerfile; (2) Ogranicz zasoby: --memory=512m --cpus=1; (3) Nie eksponuj Docker socket (/var/run/docker.sock) do kontenerów bez potrzeby — to da im dostęp root do hosta; (4) Używaj sieci bridge zamiast --network=host; (5) Regularnie aktualizuj obrazy bazowe (docker pull + rebuild); (6) Firewalla: domyślnie Docker omija iptables — skonfiguruj UFW/nftables z uwzględnieniem reguł Dockera; (7) Skany bezpieczeństwa: docker scout lub trivy do skanowania obrazów.
Jak uruchomić aplikację webową przez Docker Compose?
›
Przykładowy docker-compose.yml dla aplikacji Node.js + PostgreSQL + Nginx: zdefiniuj services z odpowiednimi image, ports, volumes i networks. Uruchom: docker compose up -d. Sprawdź logi: docker compose logs -f. Zatrzymaj: docker compose down. Dla produkcji: dodaj restart: unless-stopped do każdego serwisu, używaj named volumes dla danych (nie bind mounts), oddziel konfiguracje dev i prod przez override files (docker-compose.override.yml).
Sprawdź oferty pasujące do tego scenariusza
Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.
Twoja prywatność = Twoja decyzja. Używamy anonimowych plików cookies Google Analytics,
żeby wiedzieć które porównania hostingów są dla Ciebie przydatne. Bez Twojej zgody nie uruchamiamy
żadnych skryptów śledzących — domyślnie wszystko jest wyłączone.
Szczegóły w polityce prywatności.