Poradnik
Docker na VPS — co to jest i jak zainstalować
Kontenery zamiast ręcznego składania stosu. Instalacja na Ubuntu i Debianie, Compose i zapora.
Docker pakuje program razem z bibliotekami w kontener. Na VPS uruchamiasz ten sam obraz, który działa u Ciebie na laptopie. To nie jest osobna maszyna wirtualna — korzysta z jądra Twojego systemu. Mniej narzutu, szybszy start, łatwiejsza aktualizacja.
Na hostingu WWW Dockera nie stawiasz. Tam dostajesz stronę. Docker ma sens na VPS z rootem.
Co zyskujesz
- Powtarzalność.
docker compose upstawia aplikację, bazę i proxy bez ręcznegoaptna każdym pakiecie. - Izolacja. Aplikacja nie nadpisuje systemowych bibliotek. Druga usługa może mieć inną wersję PHP albo Node.
- Porządek. Logi, restart i limit RAM ustawiasz w jednym pliku, nie w pięciu jednostkach systemd.
Czego Docker nie robi: nie zastępuje zapory, kopii zapasowej ani aktualizacji systemu. Obraz z dziurą nadal jest dziurą.
Instalacja na Ubuntu i Debianie
Zaloguj się na VPS (login i hasło są w panelu) i zainstaluj pakiety z repozytorium dystrybucji:
sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo systemctl enable --now docker
sudo docker run --rm hello-world
Jeśli widzisz komunikat od hello-world, silnik działa.
Żeby nie pisać sudo przy każdym docker, dodaj swoje konto do grupy i wyloguj się, potem zaloguj ponownie:
sudo usermod -aG docker "$USER"
Na małym planie (VX11 / VX21) jeden stos — aplikacja plus baza — zwykle wystarcza. Baza i Redis obok ciężkiej aplikacji szybciej zjedzą RAM niż vCPU.
Compose zamiast pojedynczych poleceń
Plik compose.yml opisuje cały zestaw. Przykład z Nginxem na porcie 80:
services:
www:
image: nginx:alpine
ports:
- "80:80"
restart: unless-stopped
W katalogu z tym plikiem:
docker compose up -d
docker compose ps
docker compose logs -f
Zatrzymanie: docker compose down. Dane, które mają przeżyć restart, trzymaj w wolumenie albo w katalogu na dysku NVMe — nie w efemerycznej warstwie kontenera.
Zapora: port w Dockerze to nie to samo co wejście z internetu
ports: "80:80" otwiera nasłuch na serwerze. Na VPS b00ber zapora na starcie puszcza logowanie, reszta jest zamknięta. Wejście na stronę musisz otworzyć sam. Najpierw zobacz, co już jest w regułach:
sudo nft list ruleset
Dopuść HTTP i HTTPS, potem zapisz zestaw do /etc/nftables.conf, żeby przeżył restart. Szczegóły: Zapora od startu.
Nie wystawiaj na świat portu 2375 ani gniazda Dockera. Kto ma dostęp do Dockera, ten ma de facto root.
Dobre nawyki
- Obrazy z zaufanego rejestru, pin wersji (
nginx:1.27, nienginx:latestna produkcji). restart: unless-stopped, żeby usługa wracała po rebootcie VPS.- Limit pamięci w Compose (
mem_limit), zwłaszcza na VX11. - Baza nie słucha
0.0.0.0— tylko sieć wewnętrzna Compose. docker system pruneod czasu do czasu, żeby stare obrazy nie zjadały NVMe.
W skrócie
Docker to powtarzalne kontenery na Twoim VPS, nie magia. Instalacja: docker.io i Compose, test hello-world, otwarte tylko te wejścia, których używasz. Hosting WWW zostaw na strony bez Dockera. VPS — gdy chcesz cały stos pod sobą.
