 Autor: [Adam Nadolny](/autorzy/adam-nadolny) Ekspert DevOps i infrastruktury · Zweryfikowano Kwiecień 2026

1.  [HostGrade.pl](/)
2.  ›
3.  [Baza wiedzy](/baza-wiedzy/)
4.  ›
5.  Docker na VPS

# Docker na VPS — instalacja, Compose i bezpieczeństwo

Opublikowano: 8 kwietnia 2026 · Kategoria: [VPS i serwery](/baza-wiedzy/)

**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.

## Instalacja Docker CE na Ubuntu 22.04

\# 1. Zaktualizuj repozytoria i zainstaluj zależności
sudo apt-get update
sudo apt-get install -y ca-certificates curl

# 2. Dodaj klucz GPG Dockera
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \\
  -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# 3. Dodaj repozytorium Docker
echo \\
  "deb \[arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc\] \\
  https://download.docker.com/linux/ubuntu \\
  $(. /etc/os-release && echo "$VERSION\_CODENAME") stable" | \\
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 4. Zainstaluj Docker Engine + Compose Plugin
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io \\
  docker-buildx-plugin docker-compose-plugin

# 5. Dodaj użytkownika do grupy docker (bez sudo)
sudo usermod -aG docker $USER
newgrp docker

# 6. Weryfikacja instalacji
docker --version
docker compose version
docker run hello-world

## Przykładowy docker-compose.yml dla aplikacji webowej

services:
  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d:ro
      - ./certbot/conf:/etc/letsencrypt:ro
      - ./certbot/www:/var/www/certbot:ro
    depends\_on:
      - app
    restart: unless-stopped

  app:
    build: .
    expose:
      - "3000"
    environment:
      - NODE\_ENV=production
      - DATABASE\_URL=postgresql://user:pass@db:5432/mydb
    depends\_on:
      - db
    restart: unless-stopped
    mem\_limit: 512m
    cpus: 1.0

  db:
    image: postgres:16-alpine
    volumes:
      - postgres\_data:/var/lib/postgresql/data
    environment:
      - POSTGRES\_USER=user
      - POSTGRES\_PASSWORD=strongpassword
      - POSTGRES\_DB=mydb
    restart: unless-stopped
    mem\_limit: 256m

  redis:
    image: redis:7-alpine
    restart: unless-stopped
    mem\_limit: 128m

volumes:
  postgres\_data:

## Bezpieczeństwo Dockera na produkcji

### Problem z firewallem — Docker i UFW

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)

### Automatyczne aktualizacje obrazów

\# Watchtower — automatyczna aktualizacja kontenerów
docker run -d \\
  --name watchtower \\
  -v /var/run/docker.sock:/var/run/docker.sock \\
  containrrr/watchtower --schedule "0 0 4 \* \* \*" --cleanup

## Najczęstsze pytania

Jaki VPS potrzebuję do uruchomienia Dockera? ›

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 zainstalować Docker CE na Ubuntu 22.04 LTS? ›

Oficjalna metoda: (1) sudo apt-get update && sudo apt-get install ca-certificates curl; (2) sudo install -m 0755 -d /etc/apt/keyrings; (3) sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc; (4) echo "deb \[arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc\] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION\_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null; (5) sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin. Weryfikacja: docker run hello-world.

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.

Mikr.us

Budżetowy VPS pod naukę Dockera i małe projekty

VPS + Docker

[Aktywuj rabat →](/out/mikrus)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/mikrus)

Contabo

Tani VPS z większą ilością RAM do kontenerów i usług

VPS + RAM

[Aktywuj rabat →](/out/contabo)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/contabo)

ProSerwer.pl

Polski VPS dla projektów wymagających pełnego SSH/root

Polski VPS

[Aktywuj rabat →](/out/proserwer-pl)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/proserwer)

## Powiązane artykuły

-   [Hosting współdzielony vs VPS
    
    Kiedy warto przejść na VPS — różnice i koszty.
    
    ](/baza-wiedzy/hosting-wspoldzielony-vs-vps)
-   [VPS dla programistów i AI
    
    Jak wybrać VPS do projektów AI i ML.
    
    ](/baza-wiedzy/vps-dla-programistow-ai)
-   [Node.js na hostingu
    
    Jak uruchomić Node.js na hostingu lub VPS.
    
    ](/baza-wiedzy/nodejs-na-hostingu-wspoldzielonym)
-   [Git deploy na hostingu
    
    Automatyczny deploy przez GitHub Actions.
    
    ](/baza-wiedzy/git-deploy-na-hostingu)